2011년 7월 5일 화요일

날짜 가로 Query 만들기


/**
  * 보험처리 날짜 갯수 합계 부분 생성
  * @param dateList  날짜 List
  * @return 날짜 합계 부분
  */
 public static String getDateTotalQuery(String[] dateList) throws Exception {

  StringBuffer sql = new StringBuffer();

  sql.append(" ( ");
  for (int i = 0; i < dateList.length; i++) {
   if( i != 0 ) sql.append(" + ");
   sql.append("date").append(dateList[i]);
  }
  sql.append(" ) ");
  return sql.toString();
 }
 /**
  * 보험처리 날짜(갯수) 최종 목록 부분 생성
  * @param dateList  날짜 List
  * @return 날짜 최종 목록 부분
  */
 public static String getDateListQuery(String[] dateList) throws Exception {

  StringBuffer sql = new StringBuffer();

  for (int i = 0; i < dateList.length; i++) {
   if( i != 0 ) sql.append(", ");
   sql.append("date").append(dateList[i]);
  }
  return sql.toString();
 }
 /**
  * 보험처리 날짜(갯수) 개별 합계 부분 생성
  * @param dateList  날짜 List
  * @return 날짜 최종 목록 부분
  */
 public static String getDateSumQuery(String[] dateList) throws Exception {

  StringBuffer sql = new StringBuffer();

  for (int i = 0; i < dateList.length; i++) {
   if( i != 0 ) sql.append(", ");
   sql.append("SUM(date").append(dateList[i]).append(") date").append(dateList[i]);
  }
  return sql.toString();
 }
 /**
  * 보험처리 날짜(갯수) 개별 Decode 부분 생성
  * @param dateList  날짜 List
  * @param dataFlag  날짜 구분(년/월/일)
  * @return 날짜 개별 합계 부분
  */
 public static String getDateDecodeQuery(String[] dateList, String dateFlag) throws Exception {

  StringBuffer sql = new StringBuffer();

  //날짜 구분에 따라 날짜 조건 변경
  String returnDate = "YYYYMMDD";
  if (dateFlag.equals("Y")) returnDate = "YYYY";
  else if (dateFlag.equals("M")) returnDate = "YYYYMM";
  else if (dateFlag.equals("D")) returnDate = "YYYYMMDD";

  for (int i = 0; i < dateList.length; i++) {
   if( i != 0 ) sql.append(", ");
   sql.append("DECODE(TO_CHAR(create_dt, '").append(returnDate).append("'), '").append(dateList[i]).append("', 1, 0) date").append(dateList[i]);
  }
  return sql.toString();
 }

댓글 없음:

댓글 쓰기