MySQL查询协助将过滤应用于两列

时间:2019-01-30 03:51:55

标签: mysql sql

您好,我不确定如何执行此查询以寻找一些指导...

输出应为一列,并带有单行“ 2004年总销售额”和
另一列只有一行“ 2005年总销售额”。

使用classicmodels.orders(orderNumber,OrderDate) 和classicmodels.orderdetails(orderNumber,PriceEach)

如何将过滤子句应用于两个不同的列?

预先感谢

1 个答案:

答案 0 :(得分:2)

您似乎正在寻找条件聚合:

SELECT
    SUM(CASE WHEN YEAR(o.OrderDate) = 2004 THEN od.PriceEach ELSE 0 END) Total_Sales_for_2004,
    SUM(CASE WHEN YEAR(o.OrderDate) = 2005 THEN od.PriceEach ELSE 0 END) Total_Sales_for_2005
FROM 
    orders o
    INNER JOIN orderdetails od ON od.orderNumber = o.orderNumber
WHERE YEAR(o.OrderDate) IN (2004, 20O5)