我有一个数据表,显示了8年来各种产品型号的销售情况( tblSales
)每个销售记录都列出了交易信息,包括产品、交易时间戳和基于时间戳的名为“年\月”的列。
我需要创建一个查询,返回一个产品模型在数据集中每年/月的销售计数(总共102个月)。问题是有些型号不是在给定的月份购买的,所以我需要查询返回该月份的0。
目前,我可以通过创建第二个表和两个单独的查询来实现这一点。
我创建了一个表( tblYrMo
)从原来的表中每年\u个月( tblSales
),那么 qry1
producta的月份计数(去掉没有producta销售的月份)。接下来, qry2
它是 tblYrMo
至 qry1
使用nz()函数在没有产品销售的月份生成0。这给了我所有102个月的产品计数的期望结果。
对多个产品使用此方法会创建几十个查询,因此我尝试简化代码并使用子查询只创建一个查询。但是,我得到了一个语法错误(“连接操作中的语法错误”)。我想知道这里是否有人可以帮忙,或者这在msaccesssql中是否可行
这是我写的代码没有运行。错误突出显示子查询 FROM tblSales
,所以我试着把它放在[]里,我试着把所有的tabel/列放在[]里,运气不好。
SELECT tblYrMo.year_month
FROM tblYrMo
LEFT JOIN
(SELECT Count(NZ([tblSales].[year_month],0)) as Monthly_Count
FROM tblSales
WHERE (tblSales.[product_model] Like "A"))
ON tblYrMo.year_month = tblSales.year_month;
这里有两个查询供参考,我正在使用它们来完成当前的工作
qry1型
SELECT tblSales.year_month, Count(tblSales.year_month) AS Monthly_Count
FROM tblSales
WHERE (((tblSale.[product_model]) Like "A"))
GROUP BY tblSales.year_month;
qry2型
SELECT tblYrMo.year_month, Nz([qry1].[Monthly_Count],0) AS Monthly_Sale_Count
FROM tblYrMo
LEFT JOIN qry1
ON tblYrMo.year_month = qry1.year_month;
2条答案
按热度按时间kdfy810k1#
我认为主要问题是查询没有返回您想要的内容,我认为您很接近:
我想这就是你要找的那种合并查询。我还可以添加一个销售产品模型的分组,并在结果中包含该字段。
vcirk6k62#
需要表别名: