2012-09-01 2 views
0

2 레코드를 반환하지만 두 번째 행 합계에 null이 표시됩니다. 무엇이 잘못 되었습니까? P_TX_CTGY = 'CTO는'내에서 선택GROUP BY가 합계가 잘못된 결과를 표시합니다.

SELECT nvl(X_CDTR_AGT_ID_2AND,' ') 

     ,COUNT(CASE P_PMNT_SRC WHEN 'FDR_ATM' THEN 1 END) as atmCount 

     ,(SELECT sum(X_STTLM_AMT) AS IVRSUM 
      FROM v_minf_report b 
      WHERE b.X_CDTR_AGT_ID_2AND = ass.X_CDTR_AGT_ID_2AND 
      GROUP BY X_CDTR_AGT_ID_2AND) as nyun 

     ,COUNT(CASE P_PMNT_SRC WHEN 'FDR_INB' THEN 1 END) as inbCount 
     ,COUNT(CASE P_PMNT_SRC WHEN 'FDR_IVR' THEN 1 END) as ivrCount 
     ,COUNT(CASE P_PMNT_SRC WHEN 'FDR_BV' THEN 1 END) as bvcount 
     ,COUNT(CASE P_PMNT_SRC WHEN 'FDR_MANUAL' THEN 1 END) as manualcount 

FROM v_minf_report ass 
WHERE P_TX_CTGY = 'CTO' 
GROUP BY X_CDTR_AGT_ID_2AND 
+0

적용 하는가? –

답변

0
SELECT 
X_CDTR_AGT_ID_2AND, atmCount, IVRSUM, inbCount, ivrCount, bvcount, manualcount 
FROM (
SELECT nvl(X_CDTR_AGT_ID_2AND,' ') X_CDTR_AGT_ID_2AND, 
COUNT(CASE P_PMNT_SRC WHEN 'FDR_ATM' THEN 1 END) as atmCount, 
COUNT(CASE P_PMNT_SRC WHEN 'FDR_INB' THEN 1 END) as inbCount, 
COUNT(CASE P_PMNT_SRC WHEN 'FDR_IVR' THEN 1 END) as ivrCount, 
COUNT(CASE P_PMNT_SRC WHEN 'FDR_BV' THEN 1 END) as bvcount, 
COUNT(CASE P_PMNT_SRC WHEN 'FDR_MANUAL' THEN 1 END) as manualcount 
FROM v_minf_report 
WHERE P_TX_CTGY = 'CTO' 
group by X_CDTR_AGT_ID_2AND 
) as ass JOIN (
SELECT nvl(X_CDTR_AGT_ID_2AND,' ') X_CDTR_AGT_ID_2AND, 
sum(X_STTLM_AMT) AS IVRSUM 
from v_minf_report 
GROUP BY X_CDTR_AGT_ID_2AND 
) as nyun USING(X_CDTR_AGT_ID_2AND) 
관련 문제