2017-05-01 1 views
1

SQL Server 2014를 사용하고 있으며 합계 계산을해야합니다. 다음 테이블을 가지고 있습니다 :2 개의 열 이름을 기반으로 합계가 실행됩니다.

Date State Product Total Sold or Returns Transaction 
22-Apr FL  shoes   72     Sale 
22-Apr FL  sandals   3     Sale 
22-Apr TX  shoes    12     Sale 
22-Apr TX  sandals   5     Sale 
23-Apr FL  shoes    1     Sale 
23-Apr FL  sandals   48     Sale 
23-Apr TX  shoes    5     Sale 
23-Apr TX  sandals   23     Sale 
22-Apr FL  shoes    -65     Returns 
22-Apr FL  sandals    -4     Returns 
22-Apr TX  shoes    -25     Returns 
22-Apr TX  sandals    -8     Returns 
23-Apr FL  shoes    -2     Returns 
23-Apr FL  sandals   -51     Returns 
23-Apr TX  shoes    -5     Returns 
23-Apr TX  sandals    -3     Returns 

각 주마다 각 제품의 누계 합계를 계산하려고합니다. 예를 들어, FL의 경우 신발은 4/22에 대해 (72 + (- 65)) = 7, 그 다음에 7 + (1 + (- 2)) = 6이됩니다. 샌들 및 TX에도 동일합니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

2

이 누적 합 창 기능을 수행합니다

select t.*, 
     sum(total_sold_or_returns) over (partition by state, product, year(date), month(date) 
             order by date) as cumulative_sum 
from t; 

partition bystateproduct 복용 - 그리고 달뿐만 아니라.

+0

. 정말 고맙습니다. – user7146708

0

아직 코멘트 할 담당자가 충분하지 않지만 한 가지 지적해야 할 점은 PARTITION에서 ORDER BY를 사용하는 윈도우 기능을 사용하여 누적 합계를 얻는 것입니다. 2012 +에서만 작동합니다. 나는 당신이 2014 년을 사용한다고 말한 것을 알고 있습니다. 그러나 만약 당신이 파티션에서 ORDER BY가 어떻게 작동하는지 알지 못한다면, 이전의 답을 정말로 이해할 수 없을 것입니다.

관련 문제