SELECT A.customer_id,
SUM(B.quantity*b.list_price) AS [ITEM SALES]
-- ,
--(SELECT SUM(quantity*list_price)
-- FROM sales.order_items
-- WHERE YEAR(order_date) = '2016') AS [TOTAL SALES 2016]
FROM sales.orders AS A
RIGHT JOIN sales.order_items AS B
ON A.order_id = B.order_id
GROUP BY A.customer_id
ORDER BY A.customer_id ASC
结果//我需要显示2016年的销售总额
1 30645.87
2 21653.85
3 26249.81
4 24198.88
5 19442.88
6 35857.86
7 7707.96
8 2603.95
9 26679.78
答案 0 :(得分:1)
您真正需要执行查询的大多数代码已经存在,您只需要重新编写一些语句,然后使用条件聚合即可:
SELECT
so.customer_id,
SUM(soi.quantity*soi.list_price) AS [ITEM SALES],
SUM(CASE WHEN YEAR(so.order_date) = 2016
THEN soi.quantity*soi.list_price ELSE 0 END) AS [TOTAL SALES 2016]
FROM sales.orders AS so
LEFT JOIN sales.order_items AS soi
ON so.order_id = soi.order_id
GROUP BY
so.customer_id
ORDER BY
so.customer_id;