T-sql :get SUM of Columns

后端 未结 3 578
梦毁少年i
梦毁少年i 2021-01-27 15:56

I have a table that looks something like the following :

          W1  W2 w3
Gold      10    2    3              
Silver     3    1    1

but i

3条回答
  •  有刺的猬
    2021-01-27 16:29

    Calculate the running total before pivoting the data

    SELECT element, 
           week1=[1],week2=[2],week3=[3]
    FROM
    (
    SELECT [week] = DATEPART(ISO_WEEK,ta.enddate),
           price = sum(ta.price)Over(Partition by element Order by enddate),
           element  
    FROM table1 ta 
    where ta.enddate BETWEEN '2016/01/01' AND '2016/12/31'
    ) src
    PIVOT
    (
     SUM(price) FOR week IN ( [1],[2],[3])
    ) piv
    

    for older versions

    SELECT element, 
           week1=[1],week2=[2],week3=[3]
    FROM
    (
    SELECT [week] = DATEPART(ISO_WEEK,ta.enddate),
           cs.price,
           element  
    FROM table1 ta 
    cross apply(select sum(price) from table1 tb 
                where ta.element = tb.element and ta.enddate >= tb.enddate ) cs (price)
    where ta.enddate BETWEEN '2016/01/01' AND '2016/12/31'
    ) src
    PIVOT
    (
     SUM(price) FOR week IN ( [1],[2],[3])
    ) piv
    

提交回复
热议问题