查询具有相同字段标题的查询 - MS Access

Posted

技术标签:

【中文标题】查询具有相同字段标题的查询 - MS Access【英文标题】:Query of queries with same field headings - MS Access 【发布时间】:2012-06-26 18:30:43 【问题描述】:

我有几个查询 (20+),它们都返回以下三列:

Building | Room | Other

所有这些都是文本字段。我想接受所有这些查询并将它们组合起来;所以我想看看查询的整体返回值。

例如,如果我有一个查询 SELECT Building, Room, Other FROM tblOne WHERE Room=10SELECT Building, Room, Other FROM tblOne WHERE Building=20,我如何将这两者合二为一?显然这是一个非常简单的示例,而我的实际查询要复杂得多,因此将它们写为 1 个查询是不可行的。

我想输出上面的例子:

Building | Room | Other
```````````````````````
20       |  1   | Some Stuff
20       | 10   | Some More
5        | 10   | Some Other
15       | 10   | Some Extra
20       |  5   | Some Text

我尝试过的所有方法都出现了“建筑物、房间和其他可能引用多个表格”的错误(也就是它不想将它们组合在一个标题下)。解决此问题的 SQL 语法是什么?

【问题讨论】:

在这个例子中它们不是;但是我有更复杂的查询,这最终被用于创建可按建筑物或房间排序的大型报告,这将显示该建筑物/房间的所有可用查询的所有结果;我正在使用 VBA 为报告编写源代码,所以我需要一种方法来添加所有这些查询;与使用 OR 将所有这些复杂的查询重写为一个相比,联合编码要容易得多。 【参考方案1】:
  SELECT Building, Room, Other FROM tblOne WHERE Room=10 
  UNION ALL
  SELECT Building, Room, Other FROM tblOne WHERE Building=20

【讨论】:

...哇。好吧,那张脸。非常感谢,正是我需要的。我想我正在寻找一种速记方式,所以甚至没有想到这一点。多次编写 SELECT * FROM [MyQueryName] 是一项艰巨的任务,但也许我可以使用一些 VBA 将其自动化。【参考方案2】:

像这样在 UNION ALL && UNION 的帮助下组合这两个查询

查询 1

SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION ALL
SELECT Building, Room, Other FROM tblOne WHERE Building=20

查询 2

SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION
SELECT Building, Room, Other FROM tblOne WHERE Building=20

通知

UNION 运算符用于组合两个或多个 SELECT 语句的结果集。

UNION 中的每个 SELECT 语句必须具有相同数量的列。这些列还必须具有相似的数据类型。此外,每个 SELECT 语句中的列的顺序必须相同。

默认情况下,UNION 运算符仅选择不同的值。要允许重复值,请使用 UNION ALL。

【讨论】:

最佳选择是因为您提供了更完整的解释。

以上是关于查询具有相同字段标题的查询 - MS Access的主要内容,如果未能解决你的问题,请参考以下文章

另一个选择查询中的 MS Access 选择查询,用于选择另一个字段值

错误 3296:具有多个 JOIN 的 MS Access 查询中不支持连接表达式

MS Access 参数查询导致错误

库存 SQL 查询出现歧义错误,其中两个字段应相等以进行计算。 MS-ACCESS

将 12 个具有不同“where”条件的 MS Access 查询组合到一个查询中

生成包含多个表/查询的 MS Access 报告