안녕하세요.
DB2 7 MVS 에서 JDBC 로 작업 중입니다.
제목 처럼 테이블의 두 필드 차이별로 구분 하여 COUNT 하는 쿼리 입니다.
SELECT
MAX(AAAAA) RMSR
, COUNT(BBBBB) TOTAL
, COUNT(CASE WHEN DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) >= (30 * -12)
AND DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) < (30 * -6)
THEN 1 ELSE NULL END) CNT1
, COUNT(CASE WHEN DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) >= (30 * -6)
AND DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) < (30 * 0)
THEN 1 ELSE NULL END) CNT2
, COUNT(CASE WHEN DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) >= (30 * 0)
AND DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) <= (30 * 6)
THEN 1 ELSE NULL END) CNT3
, COUNT(CASE WHEN DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) > (30 * 6)
AND DAYS(TIMESTAMP(CCCCC || '000000')) - DAYS(TIMESTAMP(AAAAA || '000000')) <= (30 * 12)
THEN 1 ELSE NULL END) CNT4
FROM SXTB
이렇게 작업 하려고 하였으나 불 필요하게 CASE 문을 많이 타야 하는데 다른 방법이 있으면 조언좀 부탁 드립니다. |