SQL - 如何为所有潜在ID创建查询帐户

时间:2011-06-23 11:11:57

标签: sql ms-access

在我的报告中,我需要考虑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是有所作为的。

由于

2 个答案:

答案 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表格中存在多次},则会在Main表格中至少返回一次< - >

答案 1 :(得分:0)

最有可能你需要用LEFT JOIN替换INNER JOIN。 (即,只需将“INNER”更改为“LEFT”。)这样,Main中未显示的建筑工地将不会被过滤掉。