【发布时间】:2019-04-18 17:19:38
【问题描述】:
我正在尝试从数据库中查找每个商店每年的销售额列表。但我也想打印所有销售额为 0 的年份(对于某些年份/商店,我的数据库中将没有数据)
我已经完成了以下过程,但它只返回年份和商店的非零值。
SELECT YEAR(temp.INVOICE_DATE) AS Year, Shop.Name, SUM(temp.QTY * Product.Price) AS Total
FROM (
SELECT pci.INVOICE_ID, ci.STORE_ID, ci.INVOICE_DATE, pci.PRODUCT_ID, pci.QTY
FROM [Product_Customer Invoice] pci, [Customer Invoice] ci
WHERE pci.INVOICE_ID = ci.INVOICE_ID
)AS temp, Product, Shop
WHERE Product.PRODUCT_ID = temp.PRODUCT_ID AND Shop.STORE_ID = temp.STORE_ID
GROUP BY YEAR(temp.INVOICE_DATE), Shop.Name
ORDER BY Year ASC
我得到以下结果
我想询问任何想法如何将 0 包括多年或尚未完成任何销售的商店
【问题讨论】:
-
你试过
GROUP BY ALL YEAR(temp.INVOICE_DATE), Shop.Name吗? (注意“全部”)
标签: sql sql-server database tsql