首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL 動態列轉行:供應商維度的重量與數量雙指標樞紐分析

     編輯:程式設計綜合問答

資料結構


供應商 | 名稱 | 規格 | 數量 | 重量
A      | 名1  | 規1  | 1    | 2
B      | 名2  | 規2  | 1    | 3
B      | 名1  | 規1  | 1    | 2
C      | 名3  | 規3  | 1    | 4

目標結果


名稱 | 規格 | A數量 | A重量 | B數量 | B重量 | C數量 | C重量
名1  | 規1  | 1     | 2     | 1     | 2     | 0     | 0
名2  | 規2  | 0     | 0     | 1     | 3     | 0     | 0
名3  | 規3  | 0     | 0     | 0     | 0     | 1     | 4

靜態 SQL(供應商固定)


SELECT 名稱, 規格,
    SUM(CASE 供應商 WHEN 'A' THEN 數量 ELSE 0 END) AS A數量,
    SUM(CASE 供應商 WHEN 'A' THEN 重量 ELSE 0 END) AS A重量,
    SUM(CASE 供應商 WHEN 'B' THEN 數量 ELSE 0 END) AS B數量,
    SUM(CASE 供應商 WHEN 'B' THEN 重量 ELSE 0 END) AS B重量,
    SUM(CASE 供應商 WHEN 'C' THEN 數量 ELSE 0 END) AS C數量,
    SUM(CASE 供應商 WHEN 'C' THEN 重量 ELSE 0 END) AS C重量
FROM 表
GROUP BY 名稱, 規格;

動態 SQL(供應商不固定)

需先查詢所有供應商,拼接 CASE 字串,再 EXEC 執行;或使用報表工具/BI 完成樞紐。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved