특정 테이블에 일자별 입고 건수들이 있습니다.
업체별로 group by sum을 이용해서 쿼리를 만들어 보려 합니다.
SELECT A1.CD, SUM(A1.CNT1), SUM(a1.CNT2), sum(B1.Cnt1), SUM(B1.cnt2)
FROM (SELECT A.INSUR_CD CD,
COUNT(A.INSUR_CD) CNT1,
0 CNT2
FROM S01_CORPMST A,
S02_CORPCM B
WHERE 1 = 1
AND A.USE_YN = 'Y'
AND A.INSUR_CD IN ( 'L03', 'L05', 'L86', 'L11', 'L83', 'L72', 'L74', 'L34', 'L02' )
AND A.INSUR_CD = B.INSUR_CD
AND B.YYYYMMDD BETWEEN TO_DATE( '20160801', 'YYYYMMDD' ) AND TO_DATE( '20160831', 'YYYYMMDD' )
GROUP BY A.INSUR_CD
) A1,
(SELECT A.INSUR_CD,
COUNT(A.INSUR_CD) CNT1,
0 CNT2
FROM S01_CORPMST A,
S02_CORPCM B
WHERE 1 = 1
AND A.USE_YN = 'Y'
AND A.INSUR_CD IN ( 'L03', 'L05', 'L86', 'L11', 'L83', 'L72', 'L74', 'L34', 'L02' )
AND A.INSUR_CD = B.INSUR_CD
AND B.YYYYMMDD BETWEEN TO_DATE( '20160701', 'YYYYMMDD' ) AND TO_DATE( '20160731', 'YYYYMMDD' )
GROUP BY A.INSUR_CD
) B1
GROUP BY A1.CD
;
이렇게 하는것이 맞는 것인지....몇일째 헤딩만 하다 고수님들께 조언을 얻고자 질문을 올려 봅니다.
한수 가르침을 부탁드립니다.
SELECT A.INSUR_CD CD,
COUNT(CASE WHEN B.YYYYMMDD BETWEEN TO_DATE( '20160801', 'YYYYMMDD' ) AND TO_DATE( '20160831', 'YYYYMMDD' ) THEN A.INSUR_CD END) CNT1,
COUNT(CASE WHEN B.YYYYMMDD BETWEEN TO_DATE( '20160701', 'YYYYMMDD' ) AND TO_DATE( '20160731', 'YYYYMMDD' ) THEN A.INSUR_CD END) CNT2
FROM S01_CORPMST A,
S02_CORPCM B
WHERE 1 = 1
AND A.USE_YN = 'Y'
AND A.INSUR_CD IN ( 'L03', 'L05', 'L86', 'L11', 'L83', 'L72', 'L74', 'L34', 'L02' )
AND A.INSUR_CD = B.INSUR_CD
AND B.YYYYMMDD BETWEEN TO_DATE( '20160701', 'YYYYMMDD' ) AND TO_DATE( '20160831', 'YYYYMMDD' )
GROUP BY A.INSUR_CD