我需要在我的报告中说明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,这是有区别的。
谢谢
发布于 2011-06-23 19:42:41
如果我没看错您的问题,那么您需要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
。
发布于 2011-06-23 19:41:33
最有可能的情况是,你需要用左连接替换内连接。(例如,只需将“内部”更改为“左侧”。)这样,没有在Main中表示的建筑工地就不会被过滤掉。
https://stackoverflow.com/questions/6453108
复制相似问题