您好,我不确定如何执行此查询以寻找一些指导...
输出应为一列,并带有单行“ 2004年总销售额”和
另一列只有一行“ 2005年总销售额”。
使用classicmodels.orders(orderNumber,OrderDate) 和classicmodels.orderdetails(orderNumber,PriceEach)
如何将过滤子句应用于两个不同的列?
预先感谢
答案 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)