簡體   English   中英

為了實現此特定輸出,我需要在T-SQL數據透視查詢中進行哪些更改?

[英]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.

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