2013-05-30 25 views
0

我想要做垂直和水平的總列數,請參閱下面的查詢, 我能夠做垂直總數。在一個數據透視查詢中的水平和垂直總計sql

Select 
    U_POD 'City', 
    Sum([Customer TS Pending]) as CTST , 
    sum([Pending])as P, 
    sum([Pending SQ])as 'PSQ', 
    sum([Tracking])as Tracking, 
    SUM([Open])as Openn 
from 
(
    Select T1.U_POD,T2.Name 
    from OSCL T0 
    inner join OCRD T1 
    on T0.Customer=T1.cardcode 
    inner join OSCS T2 
    on T2.statusID=T0.Status 
)Service 
Pivot 
(
    count(Name) 
    for Name IN ([Pending],[Pending SQ],[Tracking],[Open],[Customer TS Pending]) 
)pvt 
group by rollup (pvt.U_POD) 

回答

1

group by rollup會給你最後一行的總數,但如果你用總計尋找一個欄,你可以在新的計算列的查詢添加:

sum([Customer TS Pending] + [Pending] + [Pending SQ] + [Tracking] + [Open]) Total 

這將使完整查詢:

Select 
    U_POD 'City', 
    Sum([Customer TS Pending]) as CTST , 
    sum([Pending])as P, 
    sum([Pending SQ])as 'PSQ', 
    sum([Tracking])as Tracking, 
    SUM([Open])as Openn, 
    sum([Customer TS Pending] + [Pending] + [Pending SQ] + [Tracking] + [Open]) Total 
from 
(
    Select T1.U_POD,T2.Name 
    from OSCL T0 
    inner join OCRD T1 
    on T0.Customer=T1.cardcode 
    inner join OSCS T2 
    on T2.statusID=T0.Status 
)Service 
Pivot 
(
    count(Name) 
    for Name IN ([Pending],[Pending SQ],[Tracking],[Open],[Customer TS Pending]) 
)pvt 
group by rollup (pvt.U_POD) 
+0

只是一個問題,我如何把'Total'放在垂直Total的U_POD列下,就像我有Total總數的'Total'別名一樣。 – user2363530

+0

@ user2363530你可以使用類似於這種情況的表達式 - '當U_POD爲空然後'Total'else U_POD end City'時 - 這是類似的問題/對這個問題的答案 - http://stackoverflow.com /問題/ 15397298 /彙總函數替換空 – Taryn