如何将未售出商品的周数作为零值添加到我的 SQL 查询中?

How to add the weeks with no items sold as zero values to my SQL query?

基本上我在下面有这个查询,它给出了每周的销售数量,但它跳过了特定商品没有销售的那几周。我还希望将它们显示为 0 值。 顺便问一下,是否可以合并下面的两个查询?我试过了,但无法使连接起作用。

SELECT tblWeek.WeekNum, [Query - Sales].ModelName, Count([Query - Sales].OutDate) AS CountOfOutDate
FROM tblWeek LEFT JOIN [Query - Sales] ON tblWeek.WeekNum = [Query - Sales].WeekNumber
GROUP BY tblWeek.WeekNum, [Query - Sales].ModelName
HAVING ((([Query - Sales].ModelName) Is Not Null))
 ORDER BY [Query - Sales].ModelName;

查询 - 销售额:

SELECT DDL_Items.ModelName, DDL_Items.OutDate, DDL_Models.Type, DatePart("ww",[OutDate],2) AS WeekNumber
FROM DDL_Models INNER JOIN DDL_Items ON DDL_Models.ModelName = DDL_Items.ModelName;

谢谢你和最诚挚的问候,

弗朗西斯科

您要做的第一件事是在模型名称和星期之间创建笛卡尔连接。类似于:

SELECT DISTINCT [Query - Sales].ModelName, tblWeek.WeekNum
FROM [Query - Sales]
LEFT JOIN tblWeek 

这将为每个模型名称每周创建一条记录。

然后,您要将实际数据加入此查询:

SELECT qryA.*, Count([Query - Sales].OutDate) AS CountOfOutDate
FROM (
SELECT DISTINCT [Query - Sales].ModelName, tblWeek.WeekNum
FROM [Query - Sales]
LEFT JOIN tblWeek 
) as qryA
LEFT JOIN [Query - Sales]   
   ON tblWeek.WeekNum = qryA.WeekNumber
GROUP BY tblWeek.WeekNum, qryA.ModelName
HAVING qryA.ModelName Is Not Null
ORDER BY qryA.ModelName;

下面的完整代码以防有人正在寻找答案:

SELECT qryA.ModelName, qryA.WeekNum, Count([Query - Sales].OutDate) AS CountOfOutDate
FROM qryA LEFT JOIN [Query - Sales] ON qryA.WeekNum = [Query - Sales].WeekNumber
GROUP BY qryA.ModelName, qryA.WeekNum;