데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요 sql 초보자입니다.
출고량을 보여주는 테이블에서 주단위로 해서 총 출고 수량을 집계하려는 쿼리는 짜고 있는데요.
아래와 같이 쿼리문을 작성하여
SELECT A.SHIP_TO_PARTY,
case when DATEPART(ww,a.dlvy_dt) = 1 then SUM(b.gi_qty) end AS '1',
case when DATEPART(ww,a.dlvy_dt) = 2 then SUM(b.gi_qty) end AS '2',
case when DATEPART(ww,a.dlvy_dt) = 3 then SUM(b.gi_qty) end AS '3'
from S_DN_HDR a
inner join S_DN_DTL b on a.DN_NO = b.DN_NO
WHERE A.SHIP_TO_PARTY ='A0006'
AND a.DLVY_DT between '2019-01-01' and '2019-01-21'
GROUP BY A.SHIP_TO_PARTY, DATEPART(ww,a.dlvy_dt)
조회를 하면 캡처된 화면처럼 나옵니다.
해당 데이터들을 한줄로 보고 싶은데요.
-----------------------------
ship_to_party 1 2 3
A0006 9 334 2
-----------------------------
이렇게 말입니다. 혹시 방법없을까요???
SELECT A.SHIP_TO_PARTY,
SUM(case when DATEPART(ww,a.dlvy_dt) = 1 then SUM(b.gi_qty) end) AS '1',
SUM(case when DATEPART(ww,a.dlvy_dt) = 2 then SUM(b.gi_qty) end) AS '2',
SUM(case when DATEPART(ww,a.dlvy_dt) = 3 then SUM(b.gi_qty) end) AS '3'
from S_DN_HDR a
inner join S_DN_DTL b on a.DN_NO = b.DN_NO
WHERE A.SHIP_TO_PARTY ='A0006'
AND a.DLVY_DT between '2019-01-01' and '2019-01-21'
GROUP BY A.SHIP_TO_PARTY