我需要在 T-SQL 数据透视查询中更改什么才能实现此特定输出?
What do I need to change in my T-SQL pivot query to achieve this specific output?
我是 运行 SQL Server 2014,我有以下针对视图 Table.
的数据透视查询 运行
(
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
我希望我的输出类似于下面的 table(在 ResID 级别完成分组):
ResID F&B LEISURE SPA
1024 210.00 125.00 0
1136 0 500.00 325.00
我应该在数据透视表查询中更正哪些内容才能获得上述结果?
补充说明:
'EXTRASEXPENDITURE'视图Table显示信息如下:
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
我是 运行 SQL Server 2014,我有以下针对视图 Table.
的数据透视查询 运行 (
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
我希望我的输出类似于下面的 table(在 ResID 级别完成分组):
ResID F&B LEISURE SPA
1024 210.00 125.00 0
1136 0 500.00 325.00
我应该在数据透视表查询中更正哪些内容才能获得上述结果?
补充说明:
'EXTRASEXPENDITURE'视图Table显示信息如下:
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