使用 SQL Server 2012專業開發與設計 CH7範例資料庫
題目:查詢 訂單的實際單價小於產品建議單價的所有產品類別銷售金額
有三張Table,分別是「訂單明細」、「產品資料」、「產品類別」
所有產品類別銷售金額,需要使用到「產品類別」中的 類別名稱
銷售金額需要使用到「訂單明細」的 實際單價 和 數量
其中只需要列出實際單價小於建議單價的產品,所以需要「訂單明細」的 實際單價 和「產品資料」的 建議單價
解法
將 「訂單明細」和 「產品資料」作合併 (inner join),列出以下欄位
類別編號,建議單價,產品編號,實際單價,數量
--這邊不使用*是因為兩張Table都有產品編號,會有兩個產品編號的欄位出現
再將產出的Table和「產品類別」作合併(left outer join),最後再將各類別銷售金額加總做排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | --SELECT 子查詢 SELECT 類別名稱,SUM (實際單價*數量) AS 銷售金額 FROM 產品類別 left outer join (SELECT 類別編號,建議單價,訂單明細.產品編號,實際單價,數量 FROM 訂單明細 inner join 產品資料 AS OD ON 訂單明細.產品編號 = OD.產品編號 WHERE 訂單明細.實際單價 < OD.建議單價) AS PER ON 產品類別.類別編號 = PER.類別編號 GROUP BY 類別名稱 ORDER BY 銷售金額 DESC --一般查詢 SELECT 類別名稱,SUM (實際單價*數量) AS 銷售金額 FROM 訂單明細 inner join 產品資料 ON 訂單明細.產品編號 = 產品資料.產品編號 and 訂單明細.實際單價 < 產品資料.建議單價 right outer join 產品類別 ON 產品資料.類別編號 = 產品類別.類別編號 GROUP BY 類別名稱 ORDER BY 銷售金額 DESC |
沒有留言:
張貼留言