好的...由于某种原因,我总是在 SQL 中与 LEFT JOINS 斗争。
我有一个简单的查询
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 的列表,其中包含了 OpenedToday 的数量(包括零值)。相反,我只得到了今天开箱的那些产品代码的列表(只有正值)。
当我只运行 DISTINCT Product_Code 时,我得到 70 个结果显示。但是,运行完整的查询,我今天只得到 4 个。我想查看所有 70 个结果,如果今天没有打开任何案例,则为零。
我对这个加入做错了什么?
查理