如何在datetime字段上正确使用左连接

时间:2016-05-29 09:32:39

标签: tsql

我们正在寻找过去4个月内所有销售产品的每小时销售数据(我们的系统每小时写一份记录,每个产品的销售总数,但仅限销售产品)。我创建了一个视图,计算过去4个月的每小时并且正常工作。当我进行左连接时,它表现得像一个正确的加入,因为它只返回那个小时有销售的记录。没有销售时,没有返回零记录。我做错了什么?

SELECT SUM(quantity) as total, product_name, vw.dates 
FROM vwGetHours4Months vw 
LEFT JOIN Product_Sales ps ON vw.Dates=ps.sales_hour
GROUP BY product_name,vw.dates
OPTION (maxrecursion 0)

1 个答案:

答案 0 :(得分:1)

我认为问题在于您按照product_name进行分组,因为在没有销售的情况下,它会在数小时内为空,但会从结果中省略。

尝试:

SELECT SUM(quantity) as total, product_name, vw.dates 
FROM vwGetHours4Months vw 
LEFT JOIN Product_Sales ps ON vw.Dates=ps.sales_hour
GROUP BY isnull(product_name,''),vw.dates
OPTION (maxrecursion 0)