在MS Access查询中返回没有结果的值

时间:2019-05-08 17:44:51

标签: sql ms-access ms-access-2013

我有一个MS Access 2013查询,该查询会自动运行,并显示每个县发生某些事件的次数。

问题在于,一些县通常没有任何这些事件,因此查询仅显示发生事件的县。

即使值是0,我也需要拥有所有县的报告列表。我知道我在这里遗漏了一些简单的东西,但是我无法弄清楚,我为寻找答案而进行的所有研究都使我无从解决。

我继承了此数据库,因此它的设计不是最佳的。我也是刚接触数据库的人。

我已经在设计和SQL视图中检查了查询的所有选项(也许我错过了。)

这是查询的完整代码:

SELECT [FOCUS-CGDataComplete_By_Month/Year].COUNTY, Count([FOCUS- 
CGDataComplete_By_Month/Year].COUNTY) AS CT
FROM [FOCUS-CGDataComplete_By_Month/Year]
GROUP BY [FOCUS-CGDataComplete_By_Month/Year].COUNTY
ORDER BY Count([FOCUS-CGDataComplete_By_Month/Year].COUNTY) DESC;

查询正确运行,并正确返回所有带事件的县。因此发生事件的县的号码正确,但是没有发生事件的县却没有显示(我知道这是可以预料的,但是我如何“覆盖”呢?)

1 个答案:

答案 0 :(得分:0)

首先,您需要一个包含所有希望在输出中看到的县的表-如果表[FOCUS-CGDataComplete_By_Month/Year]的任何记录中都没有出现县,则该表显然不能报告不了解的县。

配有一个包含所有可能县的表格,您可以使用left join输出此表中的所有县以及与每个县相关联的[FOCUS-CGDataComplete_By_Month/Year]表中显示的记录数。 / p>

这种查询可能类似于以下内容:

select c.county, count(f.county) as ct
from countytable c left join [focus-cgdatacomplete_by_month/year] f on c.county = f.county
group by c.county
order by count(f.county) desc

在这里,我假设countytable是一个包含county字段的所有可能值的表-您应该重命名它以适合数据库中该表的名称。