조건별 카운트 및 누적합 쿼리 문의 좀요.. 0 2 5,865

by 손님 [SQL Query] group by [2009.08.18 15:36:22]


카운트와 합을 같이 보여주는 건데요...

With AAA As (
Select ’AA’ "상품코드", ’A’ "생산처", ’A’ "폐기처" , 1000 "폐기비용" From Dual
Union All
Select ’AA’ "상품코드", ’A’ "생산처", ’B’ "폐기처" , 2000 "폐기비용" From Dual
Union All
Select ’BB’ "상품코드", ’A’ "생산처", ’C’ "폐기처" , 1300 "폐기비용" From Dual
Union All
Select ’BB’ "상품코드", ’B’ "생산처", ’A’ "폐기처" , 1000 "폐기비용" From Dual
)
Select * From AAA;


생산처|  생산갯수  |  폐기비용
  A                2                 2000
  B               1                  2000
  C               0                 1300

위처럼 나오게 하고 싶은데요..

생산갯수는 생산처당 상품코드에 Group By 카운트 이고요...

폐기비용은 폐기처당 Sum입니다..

생산처와 폐기처는 같은 코드들이 사용이 되므로..

테이블을 여러번 태우지 않고 하고 싶어서 row_number() over(partition by..를 사용해 봤는데요.

잘 안되네요..


도움 부탁 드립니다...

by 마농 [2009.08.18 16:32:39]
WITH aaa AS
(
SELECT 'AA' "상품코드", 'A' "생산처", 'A' "폐기처" , 1000 "폐기비용" FROM dual
UNION ALL SELECT 'AA', 'A', 'B', 2000 FROM dual
UNION ALL SELECT 'BB', 'A', 'C', 1300 FROM dual
UNION ALL SELECT 'BB', 'B', 'A', 1000 FROM dual
)
SELECT DECODE(lv,1,"생산처","폐기처") "생산처"
, COUNT(DISTINCT DECODE(lv,1,"상품코드")) "생산량"
, SUM(DECODE(lv,2,"폐기비용")) "폐기비용"
FROM aaa, (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 2)
GROUP BY DECODE(lv,1,"생산처","폐기처")
ORDER BY 1
;

by 질문자 [2009.08.18 18:01:25]
마농님 정말 감사드립니다...^^

항상 건강하세요~~~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입