我有以下 4 个表:
----------
tblDates:
DateID
30/04/2012
01/05/2012
02/05/2012
03/05/2012
----------
tblGroups:
GroupID
Home
Table
----------
tblProducts:
ProductID GroupID
Chair Home
Fork Table
Knife Table
Sofa Home
----------
tblInventory:
DateID ProductID Quantity
01/05/2012 Chair 2
01/05/2012 Sofa 1
01/05/2012 Fork 10
01/05/2012 Knife 10
02/05/2012 Sofa 1
02/05/2012 Chair 3
03/05/2012 Sofa 2
03/05/2012 Chair 3
我正在尝试编写一个查询,该查询返回 tblDates 中的所有 Dates 、tblGroups中的所有GroupID以及每个GroupID中的项目总数。
我设法做到这一点,但仅get Sum(Quantity)
适用于不为空的GroupID和DateID。我想得到0。例如上面的数据,我想得到一条线"02/05/2012 Table 0"
,因为在“表”组中没有任何产品的数据01/05/12
。
到目前为止,我的 SQL 查询是:
SELECT tblDates.DateID,
tblProducts.GroupID,
Sum(tblInventory.Quantity) AS SumOfQuantity
FROM (tblGroup
INNER JOIN tblProducts ON tblGroup.GroupID = tblProducts.GroupID)
INNER JOIN (tblDates INNER JOIN tblInventory ON tblDates.DateID = tblInventory.DateID) ON tblProducts.ProductID = tblInventory.ProductID
GROUP BY tblDates.DateID, tblProducts.GroupID;
我认为我应该基本上在与tblInventory不同的表上具有相同的查询,该查询将列出所有产品而不是列出的产品,其中 0 而不是没有行,但鉴于我的数据库中的日期和产品数量,我犹豫是否这样做,查询可能太慢了。
可能有更好的方法来实现这一点。
谢谢