查询具有相同字段标题的查询 - 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=10
和 SELECT 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 查询中不支持连接表达式
库存 SQL 查询出现歧义错误,其中两个字段应相等以进行计算。 MS-ACCESS