在SQL查询中显示零项销售

时间:2013-10-14 14:20:17

标签: sql reporting-services ssrs-2008

对SQL不熟悉我的查询有问题,我确信它有一个简单的解决方案。我正在尝试在特定时间段内生成项目销售报告,如果没有销售,我需要显示0或空单元格。相反,我根本没有显示项目。 目前的查询是:

SELECT        stock.stock_item_code, stock.physical_quantity, sales.quantity

FROM            stock_branch_level AS stock LEFT OUTER JOIN
                     booked_sales AS sales ON stock.stock_item_code = sales.stock_item_code
WHERE        (stock.replen_type = 1) AND (sales.created_date > @DateFrom)

由于

1 个答案:

答案 0 :(得分:3)

即使没有销售,

LEFT OUTER JOIN也是获取行的正确方法。

问题在于sales上的where子句。

请注意,当没有销售时,该行中的所有销售列都将为空!

解决方案是将sales.created_date的限制移至join子句:

SELECT        stock.stock_item_code, stock.physical_quantity, sales.quantity

FROM            stock_branch_level AS stock LEFT OUTER JOIN
                     booked_sales AS sales ON stock.stock_item_code = sales.stock_item_code
                                          AND sales.created_date > @DateFrom
WHERE        (stock.replen_type = 1)