我正在嘗試提取過去 12 個月的分項銷售資料,并為每個月 ID 構建一個包含列標題的動態表。如下提取資料是可行的,但是當我要為每個月 ID 創建一個 SUM 列時,我就卡住了。我試圖找到類似的問題,但我不確定最好的方法。
Select Item, Qty, format(Transaction Date,'MMM-yy')
from Transactions
資料提取:
| 物品 | 數量 | 月份編號 |
|---|---|---|
| A123 | 50 | Apr-22 |
| A123 | 30 | 5月22日 |
| A123 | 50 | 6月22日 |
| A321 | 50 | Apr-22 |
| A999 | 25 | 5月22日 |
| A321 | 10 | 6月22日 |
期望的輸出:
| 物品 | Apr-22 | 5月22日 | 6月22日 |
|---|---|---|---|
| A123 | 50 | 30 | 50 |
| A321 | 50 | 無效的 | 10 |
| A999 | 無效的 | 25 | 無效的 |
任何建議將不勝感激。
uj5u.com熱心網友回復:
這是樞軸操作的典型案例,您可以在其中
- 首先根據您的“ Month_ID ”值過濾每個值
- 然后聚合在常見的“專案”上
WITH cte AS (
SELECT Item, Qty, FORMAT(Transaction Date,'MMM-yy') AS Month_ID
FROM Transactions
)
SELECT Item,
MAX(CASE WHEN Month_ID = 'Apr-22' THEN Qty END) AS [Apr-22],
MAX(CASE WHEN Month_ID = 'May-22' THEN Qty END) AS [May-22],
MAX(CASE WHEN Month_ID = 'Jun-22' THEN Qty END) AS [Jun-22]
FROM cte
GROUP BY Item
注意:只要每對<" Item "、" Month-Year ">SUM只有一個值,您就不需要。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/517359.html
上一篇:Raiserror未回傳預期值
下一篇:C# SQLServer:System.Data.SqlClient.SqlException:')'附近的語法不正確
