在我的报告中,我需要考虑10个可能的建筑工地。但是,正如我的代码现在,当一个建筑工地不在我的数据库中时,它根本没有计算,这是有道理的,但我希望它列出所有可能的建筑工地并将0作为值什么都不回来我需要这样做的原因是因为我根据这些查询创建报告,并且除非我每次都记住所有的建筑工地,否则很难排除所有问题。这是SQL:
TRANSFORM Count(Main.ID) AS CountOfID
SELECT 'Total IDs' AS [Construction site >>>]
FROM Research INNER JOIN Main ON Research.Primary_ID = Main.ID
GROUP BY 'Total IDs'
PIVOT Research.Construction_site;
顺便说一句,我使用MS Access 2007是有所作为的。
由于
答案 0 :(得分:1)
如果我正确地阅读了您的问题,您需要Research
表中的所有字段,无论它们是否在Main
表中。在这种情况下,您只需要LEFT OUTER JOIN
:
TRANSFORM Count(Main.ID) AS CountOfID
SELECT 'Total IDs' AS [Construction site >>>]
FROM Research LEFT OUTER JOIN Main ON Research.Primary_ID = Main.ID
GROUP BY 'Total IDs'
PIVOT Research.Construction_site;
如果Research
表格中存在多次1>},则会在Main
表格中至少返回一次< - > 。
答案 1 :(得分:0)
最有可能你需要用LEFT JOIN替换INNER JOIN。 (即,只需将“INNER”更改为“LEFT”。)这样,Main中未显示的建筑工地将不会被过滤掉。