簡體   English   中英

SQL-總樞軸列

[英]SQL - Total Pivot Column

對於以下sql腳本,我想在末尾添加“總計”列,以對每一行的列中的數據求和。

請幫忙:

select * from 
(SELECT       Calender.YrPer, [Period DATA 6b].PRODUCT_NO, isnull(sum([Period DATA 6b].LI_QTY+[Period DATA 6b].RG_QTY*1.0),0) as "TotalUnits"
FROM            Calender INNER JOIN
                         [Period DATA 6b] ON Calender.[Starting Period] = [Period DATA 6b].STARTING_PERIOD LEFT OUTER JOIN
                         Allproducts ON [Period DATA 6b].PRODUCT_NO = Allproducts.PRODUCT_NO
where Calender.YrPer >= '2012P05'
group by Calender.YrPer, [Period DATA 6b].PRODUCT_NO)

as test1
pivot
(
sum(TotalUnits)
for YrPer
in ([2012P05],[2012P06],[2012P07],[2012P08],[2012P09],[2012P10],[2012P11],[2012P12],[2012P13],[2013P01],[2013P02],[2013P03],[2013P04],[2013P05],[2013P06],[2013P07],[2013P08],[2013P09],[2013P10],[2013P11],[2013P12],[2013P13],[2014P01],[2014P02],[2014P03],[2014P04])
)
PivotTable
order by PRODUCT_NO

所需樣本輸出:

PRODUCT_NO  2012P05 2012P06 2012P07 2012P08 2012P09 2012P10 2012P11 2012P12 2012P13     2013P01 2013P02 2013P03 2013P04 2013P05 2013P06 2013P07 2013P08 2013P09 2013P10 2013P11     2013P12 2013P13 2014P01 2014P02 2014P03 2014P04 2013 R52    2014 R52
75  551 506 473 261 557 1037    285 250 278 234 NULL    NULL    NULL    NULL    NULL        NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL        4432    0
174 NULL    NULL    NULL    NULL    1   NULL    NULL    NULL    NULL    NULL    NULL        NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL        NULL    NULL    NULL    NULL    1   0
216 NULL    NULL    0   0   0   0   NULL    NULL    NULL    NULL    NULL    NULL        NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL        NULL    NULL    NULL    0   0

使用您的代碼,添加並加查詢以僅按PRODUCT_NO獲得總組。 YrPer設置為常量“ TotalPerProduct”,並在數據透視表中使用此常量。 由於您未包含任何樣本數據。 我剛剛添加了代碼,我認為它應該可以工作。

嘗試..

    select * from 
(SELECT       Calender.YrPer, [Period DATA 6b].PRODUCT_NO, isnull(sum([Period DATA 6b].LI_QTY+[Period DATA 6b].RG_QTY*1.0),0) as "TotalUnits"
FROM            Calender INNER JOIN
                         [Period DATA 6b] ON Calender.[Starting Period] = [Period DATA 6b].STARTING_PERIOD LEFT OUTER JOIN
                         Allproducts ON [Period DATA 6b].PRODUCT_NO = Allproducts.PRODUCT_NO
where Calender.YrPer >= '2012P05'
group by Calender.YrPer, [Period DATA 6b].PRODUCT_NO
UNION
SELECT       'TotalPerProduct' YrPer, [Period DATA 6b].PRODUCT_NO, isnull(sum([Period DATA 6b].LI_QTY+[Period DATA 6b].RG_QTY*1.0),0) as "TotalUnits"
FROM            Calender INNER JOIN
                         [Period DATA 6b] ON Calender.[Starting Period] = [Period DATA 6b].STARTING_PERIOD LEFT OUTER JOIN
                         Allproducts ON [Period DATA 6b].PRODUCT_NO = Allproducts.PRODUCT_NO
where Calender.YrPer >= '2012P05'
group by [Period DATA 6b].PRODUCT_NO

)

as test1
pivot
(
sum(TotalUnits)
for YrPer
in ([2012P05],[2012P06],[2012P07],[2012P08],[2012P09],[2012P10],[2012P11],[2012P12],[2012P13],[2013P01],[2013P02],[2013P03],[2013P04],[2013P05],[2013P06],[2013P07],[2013P08],[2013P09],[2013P10],[2013P11],[2013P12],[2013P13],[2014P01],[2014P02],[2014P03],[2014P04], [TotalPerProduct])
)
PivotTable
order by PRODUCT_NO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM