해당월의 마지막 날짜 구하는 쿼리

개발/DB 2014. 5. 13. 09:21

SELECT TEL_NO AS CTN, PAYDATE AS 충전일, AMT AS 충전금액, C.CODE_DESC AS 충전방법, AMT_BONUS AS 보너스충전, ADD_AMT AS 추가충전, AMT_BONUS+ADD_AMT AS 총보너스충전
FROM
    (
    SELECT
        A.TEL_NO,
        SUBSTR(A.PAY_DATE,1,4) || '-' || SUBSTR(A.PAY_DATE,5,2)  || '-' || SUBSTR(A.PAY_DATE,7,2) || '  ' || SUBSTR(A.PAY_DATE,9,2)
        || ':' || SUBSTR(A.PAY_DATE,11,2) || ':' || SUBSTR(A.PAY_DATE,13,2) PAYDATE,
        DECODE(A.PAY_TYPE, 'X', -A.AMT, A.AMT) AMT, A.PPC_NO, A.PP_AGENCY_NO, A.PAY_TYPE, A.AMT_BONUS,
        DECODE(A.PAY_TYPE, '2', B.ADD_AMT, 'N', DECODE(A.PP_AGENCY_NO, 'PS1032914', 0, 'PS1024636', 0, 'PS1024866', 0, 0.15) * (A.AMT - A.AMT_BONUS), 0) ADD_AMT
         FROM PAY_HIST A, TEMP_PPC_NO_RATIO B
         WHERE A.PAY_DATE BETWEEN '20140401' || '01' AND TO_CHAR(LAST_DAY(TO_DATE('201404','YYYYMM')),'YYYYMMDD')
         AND A.PAY_TYPE <> 'X' AND A.PPC_NO = B.PPC_NO(+)
         ) A, CODE_INFO C
        WHERE A.PAY_TYPE = C.CODE_NO(+)
        AND C.CODE_GROUP = 'PAY_TYPE'
        ORDER BY PAYDATE ASC

 

 

해당월의 마지막 날짜 초까지 구하기

AND FROM_TIME BETWEEN TO_DATE('201404' || '01000000', 'YYYYMMDDHH24MISS') AND TO_DATE(TO_CHAR(LAST_DAY(TO_DATE('201404' || '01000000', 'YYYYMMDDHH24MISS')), 'YYYYMMDD') || '235959', 'YYYYMMDDHH24MISS')

'개발 > DB' 카테고리의 다른 글

오라클 PARTITION BY  (1) 2014.10.30
해당 숫자에 몇건이 있는가?  (0) 2014.06.25
TABLESPACE, TRUCATE  (0) 2014.04.07
날짜 갖고 놀기  (0) 2014.03.28
실전에서!!!  (0) 2014.03.11