我的MasterSales
桌子看起来像这样
SalesDate | Category | Total
-----------------------------
1/1/2000 01 100
1/1/2000 02 110
1/2/2000 01 80
1/2/2000 03 20
我的Category
桌子看起来像这样
ID | Name ---------- 01 | A 02 | B 03 | C 04 | D
我的查询如下所示:
SELECT m.SalesDate, c.Name, SUM(ISNULL(m.Total,0)) AS TotalSales
FROM MasterSales m
LEFT JOIN Category c ON c.ID = m.Category
WHERE m.SalesDate BETWEEN '1/1/2000' AND '1/2/2000'
我想要的结果是这样的:
SalesDate | Name | TotalSales
------------------------------
1/1/2000 A 100
1/1/2000 B 110
1/1/2000 C 0
1/1/2000 D 0
1/2/2000 A 80
1/2/2000 B 0
1/2/2000 C 20
1/2/2000 D 0
但我得到的结果是这样的:
SalesDate | Name | TotalSales
------------------------------
1/1/2000 A 100
1/1/2000 B 110
1/2/2000 A 80
1/2/2000 C 20
我已经尝试过使用RIGHT JOIN
而不是LEFT JOIN
切换 table onFROM
子句,但结果仍然相同。谁能帮我解释一下为什么它不能正常工作?
PS:我使用的是 SQL Server 2005(如果重要的话)