2013-05-30 1 views
0

세로 및 가로 합계를 수행하려고 시도했습니다. 다음 쿼리를 참조하십시오. 세로 합계를 수행 할 수있었습니다.피벗 쿼리의 가로 및 세로 합계가 ms 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 

이것은을 만들 것 전체 쿼리 : 내가 행 합계에 대한 '총'별명을 가지고있는 것처럼 나는 수직 전체의 U_POD 열 아래 '총'을 넣어 어떻게

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

한 질문. – user2363530

+0

@ user2363530 당신은 다음과 비슷한 case 표현식을 사용할 수 있습니다 -'U_POD가 null이고 'Total'else U_POD end City' - 여기에 비슷한 질문이나 대답이 있습니다 - http://stackoverflow.com/questions/15397298/rollup-function-replace-null – Taryn