데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요.
ms sql 쿼리 개발 중 막히는 부분이 있어서요...
여러 low데이터를 가공하여 아래 와 같이 결과물이 나와야 하는대요...
여기서 "누적판매량" 부분의 값을 어떻게 해야 얻을 수 있을지 생각해봐도 답이 안떠오르네요...
필드명 월 판매량 누적판매량
1월 300 300 (1월)
2월 150 450 (1월+2월)
3월 100 550 (1월+2월+3월)
참고로 현재 쿼리는 아래와 같습니다.
각 월마다 sum 을 union 으로 하여 12개를 붙여서 행으로 12 행이 나오게 해놓은 상태거든요 (데이터가 많치 않아 union 으로 구현해도 문제가 되지 않아서)
select
'1월' as 월
,sum(case when detepart(month,판매일자) = 1 then 판매일자 else 0 end) as 판매량
group by detepart(month,판매일자)
union all
select
'2월' as 월
sum(case when detepart(month,판매일자) = 2 then 판매일자 else 0 end) as 판매량
group by detepart(month,판매일자)
참고하세요
with saltbl as (
select '201701' mm, 300 sal union all
select '201702' mm, 150 sal union all
select '201703' mm, 100 sal
)
select t1.mm
, t1.sal
, ( select sum(t2.sal)
from saltbl t2
where t2.mm <= t1.mm
) cumsal_sqlserver2005
-- , sum(sal)over(order by mm) cumsal_sqlserver2012
from saltbl t1