MYSQL带条件从两个表中选择数据

uxhixvfz  于 2023-01-12  发布在  Mysql
关注(0)|答案(1)|浏览(102)

因此,我基本上得到了一个任务,即创建一个查询来检索总订单Number_Of_Order和所有订单的总销售Total_Sales_Amount。我的主要问题是为Normal和Promotion创建条件。
订单表
| 订单_ID|销售类型|
| - ------|- ------|
| 十个|正常|
| 十二|促销|
| 十三|正常|
| 十四|促销|
| 十五|正常|
| 十六|促销|
订单_产品表
| 订单_产品_ID|订单_ID|正常_价格|促销_价格|
| - ------|- ------|- ------|- ------|
| 一百|十个|五十|二十五|
| 一百零一|十二|一百|八十|
| 一百零二|十二|六十|五十|
| 一百零三|十三|四十|二十个|
| 一百零四|十四|五十|二十五|
| 一百零五|十五|四十|三十|
| 一百零六|十五|三百|二百五十|
| 一百零七|十六|一百五十|一百|
| 一百零八|十六|七十五|六十|
预期结果:
| 订单编号|合计_销售_金额|
| - ------|- ------|
| 订单表6中Order_ID的总数|Orders_Products表中根据Sales_type价格的总销售额|

jtjikinw

jtjikinw1#

将联接与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;

相关问题