h2.SUM(DECODE...)의 활용
잘못된 사용 예 | 올바른 사용 예 |
---|---|
SELECT SUM(DECODE(NVL(col1, 0), 1, NVL(col2, 0))), ... | SELECT SUM(DECODE(col1, NULL, NVL(col2, 0))), ... |
SELECT SUM(DECODE(col1, 1, NVL(col2, 0) + NVL(col3, 0))), ... | SELECT NVL(SUM(DECODE(col1, 1, col2)), 0) + NVL(SUM(DECODE(col1, 1, col3)), 0) ... |
SELECT SUM(DECODE(col1, 1, col2, 0), ... | SELECT SUM(DECODE(col1, 1, col2)), ... |
사례1) 제조업을 하고 있는 (주)청산은 자재수급이 원활하지 않아 생산에 많은 차질을 빚고 있었다. 그 원인을 분석하기 위해 우선 다음 그림과 같이 거래선별로 발주에서 입고까지 소요되는 구매 리드타임을 다양한 범위별로 집계해보고자 한다. 구매 리드 타임은 발주일에서 입고일 사이의 기간을 말하며 아직 입고가 되지 않은 건은 오늘까지의 기간을 적용한다. 설명을 간단하게 하기 위하여 여기서 사용되는 일자들은 date 타입으로 정의되어 있으며 일자에 '시분초'는 입력되지 않았다고 가정한다. |
---|
h4.COUNT(DECODE...)의 활용