![](/img/trans.png)
[英]MySQL SELECT COUNT(*) From two tables based on multiple conditions
[英]MYSQL select data from two tables with conditions
所以我基本上得到了一個任務,即創建一個查詢來檢索總訂單作為 Number_Of_Order 和所有訂單的總銷售額作為 Total_Sales_Amount。 我的主要問題是為 Normal 和 Promotion 創造條件。
訂單表
訂單號 | 銷售類型 |
---|---|
10 | 普通的 |
12 | 促銷 |
13 | 普通的 |
14 | 促銷 |
15 | 普通的 |
16 | 促銷 |
訂單_產品表
訂單_產品_ID | 訂單號 | 正常價格 | 促銷_價格 |
---|---|---|---|
100 | 10 | 50 | 25 |
101 | 12 | 100 | 80 |
102 | 12 | 60 | 50 |
103 | 13 | 40 | 20 |
104 | 14 | 50 | 25 |
105 | 15 | 40 | 30 |
106 | 15 | 300 | 250 |
107 | 16 | 150 | 100 |
108 | 16 | 75 | 60 |
預期結果:
Number_Of_Order 訂單號 | Total_Sales_Amount |
---|---|
Order 表 6 中的 Order_ID 總數 | 根據 Sales_type 價格從 Orders_Products 表中獲得的總銷售額 |
使用連接和CASE
表達式來使用正確的價格。
SELECT COUNT(DISTINCT o.Order_ID) AS Number_Of_Order,
SUM(CASE WHEN o.Sales_Type = 'Normal'
THEN op.Normal_Price ELSE op.Promotion_Price END) AS Total_Sales_Amount
FROM Orders o
LEFT JOIN Orders_Products op
ON op.Order_ID = o.Order_ID;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.