[英]What do I need to change in my T-SQL pivot query to achieve this specific output?
我正在運行SQL Server 2014,並且針對視圖表運行了以下數據透視查詢。
(
SELECT [ResID], [F&B], [LEISURE], [SPA]
FROM ( SELECT * FROM [EXTRASEXPENDITURE]
)m
PIVOT (SUM([FOC_NETAMOUNT])
FOR [CATEGORY] IN ([F&B], [LEISURE], [SPA]
))AS PVTTABLE)
ORDER BY [ResID] ASC
下面顯示了當前輸出的摘錄:
ResID F&B LEISURE SPA
1024 210.00 0 0
1024 0 125.00 0
1136 0 500.00 0
1136 0 0 325.00
我期望我的輸出類似於下表(在ResID級別完成分組):
ResID F&B LEISURE SPA
1024 210.00 125.00 0
1136 0 500.00 325.00
為了達到上述結果,我應該在數據透視查詢中糾正什么?
補充筆記:
“ EXTRASEXPENDITURE”視圖表顯示以下信息:
ResID FOC_Date Category FOC_NetAmount
1136 2015-10-03 SPA 325.00
1136 2015-10-12 LEISURE 500.00
1136 ..........
從Pivot
源查詢中刪除不需要的列,應該像這樣
SELECT [ResID],
[F&B],
[LEISURE],
[SPA]
FROM (SELECT ResID,
Category,
FOC_NetAmount
FROM Yourtable) a
PIVOT (Sum([FOC_NETAMOUNT])
FOR [CATEGORY] IN ([F&B],
[LEISURE],
[SPA] )) PVTTABLE
ORDER BY [ResID] ASC
嘗試這個:
SELECT [ResID],
COALESCE([F&B], 0) AS [F&B],
COALESCE([LEISURE], 0) AS [LEISURE],
COALESCE([SPA], 0) AS [SPA]
FROM (
SELECT [ResID], [Category], [FOC_NetAmount]
FROM [EXTRASEXPENDITURE]) AS src
PIVOT (
SUM([FOC_NETAMOUNT])
FOR [CATEGORY] IN ([F&B], [LEISURE], [SPA]))AS PVTTABLE
ORDER BY [ResID] ASC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.