WITH W_STYLE AS (SELECT INFO.DIVISION_CD, INFO.STYLE_CD, INFO.STYLENAME, DENSE_RANK() OVER(ORDER BY NVL(SUM(DECODE(SALE.WORK_GU, 0, SALE.QTY, 1, -SALE.QTY)),0) DESC) RANK_NO FROM BIZ_STYLEINFO INFO, BIZ_SALE SALE WHERE INFO.DIVISION_CD = '0' AND INFO.STYLE_CD = SALE.STYLE_CD AND SALE.DIVISION_CD = '0' AND INFO.EXTRA_S_2 = '0' AND INFO.SECTION02_CD = '1' GROUP BY INFO.DIVISION_CD, INFO.STYLE_CD, INFO.STYLENAME ) SELECT A.RANK_NO, A.STYLE_CD, A.STYLENAME, B.IMAGE, C.SHOP_CD, CASE WHEN C.SHOP_CD IS NULL THEN 0 WHEN C.SHOP_CD IS NOT NULL THEN 1 END AS CK FROM W_STYLE A ,BIZ_STYLE_IMAGE B ,BIZ_RUNBS C WHERE A.DIVISION_CD = '0' AND B.DIVISION_CD(+) = '0' AND B.STYLE_CD(+) = A.STYLE_CD AND B.STYLE_SEQ(+) = '01' AND B.IMAGE_SEQ(+) = '1' AND C.DIVISION_CD(+) = '0' AND C.STYLE_CD(+) = A.STYLE_CD AND C.SHOP_CD(+) = '50485' AND A.RANK_NO <= '10' ORDER BY A.RANK_NO
현재 SQL문 조회결과 사진과 같이 세로로 출력되는 데이터가 있습니다.
저 조회결과를 1번째 사진 1번째줄을 예시로 들자면
1
310825742
3FY742(P)
null
0
식으로 출력되게 하고싶은데 어떻게 해야할지를 모르겠습니다..
캡처2의 사진과 같이 출력해서 나열하고싶은데 어렵네요.
혹시 SQL로 가능할까요?
가로를 세로로 표시면..UNPIVOT 을 이용하면 될것 같습니다.
WITH t AS ( SELECT 1 pk, 2 c1, 3 c2 FROM dual UNION ALL SELECT 2, 3, 4 FROM dual ) SELECT * FROM t UNPIVOT (c FOR gb IN (c1, c2)) ORDER BY pk, gb ;
친절한 답변 감사합니다! 확인해보니 BLOB타입 때문에 SQL로 작성하기엔 부적절한것 같네요 ㅜㅜ..
이미지(blob)가 있으면 좀 애매할거 같아요.
어플리케이션단에서 해결하는게 좋을듯합니다.
답변 감사합니다! 이미지때문에 안되는군요ㅜㅜ..
쿼리로 해도 되긴 하겠지만...
원하는 화면은 어플리케이션에서 구현하는게 적절해 보입니다.
답변 감사합니다!
DECODE(SALE.WORK_GU, '0', SALE.QTY, 0, -SALE.QTY)
DECODE 사용법이 이상합니다.
'0' 이나 0 이나 그게 그거 이므로 뒤에 0 을 만족하는 -SALE.QTY 는 나올 수가 없습니다.
말씀 감사합니다! 수정하겠습니다!
혹시 만약에 이미지를 배제하고 SQL을 작성한다면 어떻게 해야할까요..?
방법은 이미 동동동님께서 예시 쿼리 제시해 드렸습니다.
서로 다른 데이터 타입은 varchar2 로 통일시켜 주셔야 하고...
BLOB 은 어차피 안될 듯 하고
억지로 만들면 만들 수 는 있습니다만... 굳이....
그리고 요구사항도 모호합니다.
원본은 10 건인데 원하는 결과는 1건만 보이는데?
특정 1건만 보고 싶은 것인지?
아니라면 10건의 자료를 어떤 형태로 보고싶은지?