안녕하세요.
오라클쿼리 문의를 좀 하겠습니다. 너무 자주물어보는거 같아서...죄송..;;
이게 어제 마농님께서 해주신 쿼리 입니다.
SELECT --S_BUYELIST
B.C_CODE C_CODE --조직코드
, B.DEPT_CODE DEPT_CODE --부서코드
, F_TEC_GETDEPTNAME(’2000’,DEPT_CODE) DEPT_CODE_2000 --부서코드 2000
, F_TEC_GETDEPTNAME(’3000’,DEPT_CODE) DEPT_CODE_3000 --부서코드 3000
, COUNT(*) CNT_TOTAL --총건수
, NVL(SUM(A.SUMM_CHAR_AMOU),0) AMT_TOTAL --총공급가액
, COUNT(DECODE(A.MANA_PROC_STAT,’800’,1)) CNT_SIGN --업체인증건수
, NVL(SUM(DECODE(A.MANA_PROC_STAT,’800’,A.SUMM_CHAR_AMOU)),0) AMT_SIGN --업체인증금액
, COUNT(DECODE(A.MANA_PROC_STAT,’200’,1)) CNT_NOTE --수기인증건수
, NVL(SUM(DECODE(A.MANA_PROC_STAT,’200’,A.SUMM_CHAR_AMOU)),0) AMT_NOTE --수기인증금액
, COUNT(DECODE(A.MANA_PROC_STAT,’800’,1,’200’,1)) CNT_SIGN_NOTE --총인증건수
, NVL(SUM(DECODE(A.MANA_PROC_STAT,’800’,A.SUMM_CHAR_AMOU,’200’,A.SUMM_CHAR_AMOU)),0) AMT_SIGN_NOTE --총인증금액
, COUNT(DECODE(B.YN_ACC,’Y’,1)) CNT_ACC --미인증건수
, NVL(SUM(DECODE(B.YN_ACC,’Y’,A.SUMM_CHAR_AMOU)),0) AMT_ACC --미인증금액
, COUNT(CASE WHEN A.MANA_PROC_STAT IN (’100’,’550’,’900’) THEN 1 END) CNT_NOSIGN --회계처리건수
, NVL(SUM(CASE WHEN A.MANA_PROC_STAT IN (’100’,’550’,’900’) THEN A.SUMM_CHAR_AMOU END),0) AMT_NOSIGN --회계처리금액
, FROM TEX_MASTER A,
TEX_PRE_MASTER B
WHERE
A.MANA_BILL_NUMB = B.MANA_BILL_NUMB(+)
$WHERE$ <<--조건문 자바에서 처리
GROUP BY C_CODE, DEPT_CODE
ORDER BY DEPT_CODE
여기서 궁금증과 몇가지 추가사항에 대해서 문의를 드립니다.
원본코드에서는 1이 아니라 0으로 되어 있는데 여기서. 1을 한게. 제가 좀 이해가 되질 않았습니다.
, NVL(A.CNT_TOTAL, 0), NVL(A.AMT_TOTAL, 0)
, NVL(B.CNT_SIGN, 0), NVL(B.AMT_SIGN, 0)
, NVL(C.CNT_NOTE, 0), NVL(C.AMT_NOTE, 0)
, NVL(B.CNT_SIGN, 0)+NVL(C.CNT_NOTE, 0)
, NVL(B.AMT_SIGN, 0)+NVL(C.AMT_NOTE, 0)
, NVL(D.CNT_ACC, 0), NVL(D.AMT_ACC, 0)
, NVL(E.CNT_NOTSIGN, 0), NVL(E.AMT_NOTSIGN, 0)
원본코드 입니다.
고수님들의 도움을 요청합니다.