안녕하세요.
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