如果另一个查询中没有行,MS Access 查询将变为空白

问题描述

这让我发疯了一段时间。

所以我有 Query_A 和 Query_B,我需要将它们组合成一个名为 Query_C 的查询。 这工作得很好。但是,如果 Query_B 由于过滤器而没有返回结果或返回零行,则 Query_C 变为空白或为零行。

有什么办法可以让Query_C在Query_B没有行的情况下仍然显示Query_A的结果?

我过去一直在将 null 归零,这工作正常,但对每一列都这样做很痛苦,而且很多时候我不得不为将 null 归零部分进行另一个查询。最重要的是,我遇到了格式问题,还必须对每一列进行格式设置。它总是以如此多的查询和如此多的额外工作而告终,这似乎很愚蠢。

有没有更好的方法来做到这一点?

解决方法

考虑子查询 UNION 或 UNION ALL

选择 * 从 (Query_A UNION Query_B) AS Query_C

,

添加左连接解决了问题。在每张桌子上制作一个虚拟场,并将它们加入到测试中。