[MS-SQL] PIVOT兩欄甚至多欄的方法

我有一份資料如下,我想求出各年分,產品與區域的銷售數量各是多少?

有甚麼好方法嗎???

登愣!!!用PIVOT可以將列轉成欄,真的很方便呢!!!

SQL語法如下:

drop TABLE dbo.kkProduct

CREATE TABLE dbo.kkProduct(
     [訂單] INT NULL,
     [產品代碼] VARCHAR(32) NULL,
     [產品名稱] VARCHAR(32) NULL,
     [區域代碼] INT NULL,
     [區域名稱] VARCHAR(32) NULL,
     [數量] INT NULL,
     [年份] INT NULL,
);

INSERT dbo.kkProduct
VALUES
(1,'P01','雞排',100,'台北',10,2023),
(2,'P02','黑輪',100,'台北',20,2023),
(3,'P03','豆干',100,'台北',30,2022),
(4,'P01','雞排',300,'新竹',40,2022),
(5,'P02','黑輪',300,'新竹',50,2021),
(6,'P03','豆干',200,'桃園',60,2021),
(7,'P02','黑輪',100,'台北',70,2020),
(8,'P03','豆干',200,'桃園',80,2020),
(9,'P03','豆干',200,'桃園',50,2020)

SELECT * FROM dbo.kkProduct

SELECT *
FROM (
     SELECT [年份],
              X.value,
              X.col
     FROM [dbo].kkProduct C
     CROSS APPLY --用CROSS APPLY來UNPIVOT超簡單
       (
         VALUES
              (C.[產品名稱] ,C.[數量]),
              (C.[區域名稱] ,C.[數量])
        ) X (col,value)
) S
PIVOT (
     SUM([value]) FOR [col] IN (雞排,黑輪,豆干,台北,桃園,新竹)
) AS P;

結果如下圖所示:

馬上就呈現出來各年分,產品銷售數量與各區域的銷售數量了!!!真的很棒呢!!!

我們有30年以上的MSSQL使用經驗,有什麼問題,歡迎與我們聯繫!!

如果有什麼建議,也可以在下方留言處與我們分享,感謝您!!

手刀試用=>蝦皮對帳王

手刀試用=>康捷雲端ERP

相關文章

👉 MSSQL CHARINDEX (Transact-SQL) 查找字元在字串中的位置

👉 進出貨一覽表 簡單王 操作步驟詳解

👉 簡單王-進出貨匯入上傳工具 操作步驟詳解

👉 蝦皮對帳王-蝦皮對帳結果一覽表-為什麼要對帳?無對應???

👉 蝦皮對帳王-對帳原理分析-有訂單,有撥款だいじょうぶ(大丈夫);有訂單,沒撥款 歐NO~~~~~!!!

[蝦皮服務] 訂單完成後什麼時候能夠收到款項呢?

任何一套系統的撰寫與維護,都需要相對應的人力與雲端資料庫來維持。
感謝您願意使用我們的系統。

期待您的留言

Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *