SELECT STOCK.NUMBER, SUM(ITEMS.QUANTO) AS USAGE, STOCK.DESC1, STOCK.UNITS, STOCK.LOW
FROM ITEMS INNER JOIN
STOCK ON ITEMS.ITEM = STOCK.NUMBER
WHERE (ITEMS.IT_SDATE BETWEEN '3/31/14' AND '4/5/14')
GROUP BY STOCK.NUMBER, STOCK.DESC1, STOCK.UNITS, STOCK.LOW
此查询会返回所有项目以及本周发货的数量。但是,它没有返回本周未发货的物品库存。我需要保持数量的SUM仅在指定的时间内查看产品使用情况,同时返回所有库存项目,只显示0用于使用或null。
答案 0 :(得分:1)
如果您要查找Stock中的所有项目以及Item中的一些值,您应该可以颠倒JOIN条件的顺序并将其更改为INNER(仅匹配的项目)到LEFT(来自第一个的所有记录)表格以及第二个中找到的匹配项,如下所示:
SELECT STOCK.NUMBER, SUM(ITEMS.QUANTO) AS USAGE, STOCK.DESC1, STOCK.UNITS, STOCK.LOW
FROM
STOCK
LEFT JOIN
ITEMS ON
ITEMS.ITEM = STOCK.NUMBER AND
ITEMS.IT_SDATE BETWEEN '3/31/14' AND '4/5/14'
GROUP BY STOCK.NUMBER, STOCK.DESC1, STOCK.UNITS, STOCK.LOW
这将显示Stock表格中的所有内容,但Items.Quanto的SUM()只会从您指定的时间段中提取数据。将日期范围设置为JOIN条件意味着它仅在查看要从Items表中提取的数据时进行评估,而不是在查看从两个表中提取的内容时进行评估。