好的...在SQL中,我总是对LEFT JOIN感到困惑。
我有一个简单的查询:
SELECT COUNT(*) as OpenedToday, c.Product_Line, c.Product_Code
FROM SFCase as c
LEFT OUTER JOIN (SELECT DISTINCT Product_Code from SFCase) as p ON p.Product_Code = c.Product_Code
WHERE IsClosed = 'false'
AND DATEPART(YEAR, GETDATE()) = DATEPART(YEAR, CreatedDate)
AND DATEPART(MONTH, GETDATE()) = DATEPART(MONTH, CreatedDate)
AND DATEPART(DAY, GETDATE()) = DATEPART(DAY, CreatedDate)
GROUP BY c.Product_Line, c.Product_Code
我期望得到的是所有Product_Code清单,包括今天打开的案例数量(包括零值)。但实际上,我只得到了今天打开案例的产品代码列表(只有正值)。
当我运行DISTINCT Product_Code时,有70个结果显示。然而,运行完整查询,我今天只得到4个结果。我希望看到所有70个结果,如果今天没有打开案例,则显示零值。
这个join有什么问题吗?
查理