쿼리 질문드립니다. 0 3 567

by 이치호 [Oracle 기초] [2017.11.09 11:21:39]


안녕하세요 쿼리를 작성하려고 하는데 어떤식으로 작성해야하는지 감이 잡히지 않아서 질문드립니다.

WITH TEST AS
        (
        SELECT '20170101', '사과', '100개' FROM DUAL UNION ALL
        SELECT '20170101', '바나나', '200개' FROM DUAL UNION ALL
        SELECT '20170101', '감', '300개' FROM DUAL UNION ALL
        SELECT '20170102', '사과', '100개' FROM DUAL UNION ALL
        SELECT '20170102', '바나나', '200개' FROM DUAL UNION ALL
        SELECT '20170102', '감', '300개' FROM DUAL
        )
    SELECT * FROM TEST;

위 쿼리를 작동시키면 

--------------------------------

20170101    사과    100개
20170101    바나나    200개
20170101    감    300개
20170102    사과    100개
20170102    바나나    200개
20170102    감    300개           

-------------------------------- 이런식으로 데이터가 나오는데

-------------------------

20170101

사과 100개

바나나 200개

감 300개

20170102

사과 100개

바나나 200개

감 300개

-------------------------

이런식으로 일자가 해당 일자에 포함되는 데이터들의 상위에 노출되게끔 하고 싶습니다.

어떤식으로 해야할까요?

by 랑에1 [2017.11.09 11:40:55]
WITH TEST(a, b, c) AS
        (
        SELECT '20170101', '사과', '100개' FROM DUAL UNION ALL
        SELECT '20170101', '바나나', '200개' FROM DUAL UNION ALL
        SELECT '20170101', '감', '300개' FROM DUAL UNION ALL
        SELECT '20170102', '사과', '100개' FROM DUAL UNION ALL
        SELECT '20170102', '바나나', '200개' FROM DUAL UNION ALL
        SELECT '20170102', '감', '300개' FROM DUAL
        )
        
SELECT NVL(b || c, a) FROM TEST
GROUP BY a, ROLLUP((b, c))
ORDER BY a, GROUPING_ID(a,b,c) DESC 

 


by 이치호 [2017.11.09 11:46:39]

정말 어떻게 해야할지 막막했는데.. 덕분에 해결됬습니다

정말 감사합니다! 점심 맛있게드세요


by 랑에1 [2017.11.09 11:49:20]

감사는요 ㅎㅎ 맛점하세요~

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