如何将未售出商品的周数作为零值添加到我的 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;
基本上我在下面有这个查询,它给出了每周的销售数量,但它跳过了特定商品没有销售的那几周。我还希望将它们显示为 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;