ms-access - 跨多个表查询以连接数据
问题描述
我有多个访问表,其中包含一个名为 Attribute 的字段和一个名为 Source 的字段。我想运行一个查询,列出所有访问表中的所有属性,并列出特定属性显示的每个源。我假设这是两个单独的查询。我不知道如何编写这个特定的查询。
表 1
属性 | 源
内存 | Mem
Mem.Address | Mem
Mem.Last | Mem
Mem.First | 内存
表 2
属性 | 源
内存 | 部门
部门地址 | 上一页
| 部门
部门第一 | 部门
表 3
属性 | 来源
省 | Prov
Prov.Address |省 Prov Prov
.最后 | Prov
Prov.First | 省
内存 | 省
ExpectedResultsQuery
属性 | 源
内存 | Mem, Dep & Prov
Mem.Address | Mem
Mem.Last | Mem
Mem.First | 内存
地址 | 上一页
| 部门
部门第一 | 省
部 | Prov
Prov.Address |省 Prov Prov
.最后 | Prov
Prov.First | 省
解决方案
UNION 查询可以组合第一阶段的表。
SELECT Attribute, Source, "T1" AS Src FROM Table1
UNION SELECT Attribute, Source, "T2" FROM Table2
UNION SELECT Attribute, Source, "T3" FROM Table3
第二个查询可以使用第一个查询作为 VBA 函数的源,该函数将源值连接到每个属性。http://allenbrowne.com/func-concat.html上的一个这样的功能。
MEM 似乎只是具有多个来源的属性。VBA 函数对这种最小结果进行了大量处理,并且可以在大型数据集上执行缓慢。相反,可以只构建一个按属性分组的报告。
将 Source 值连接到单个字符串的替代方法是使用 UNION 查询作为源的 CROSSTAB 查询:
TRANSFORM First(TableUNION.Source) AS FirstOfSource
SELECT TableUNION.Attribute
FROM TableUNION
GROUP BY TableUNION.Attribute
PIVOT DCount("*","TableUNION","Attribute='" & [Attribute] & "' AND Source<'" & [Source] & "'")+1;
推荐阅读
- python - Tensorflow 对象检测中的输入张量与 Python 签名不兼容
- node.js - 缓冲到图像节点js
- python - 如何阻止python字典忽略列表中的输入
- ios - 处理具有多个捆绑 ID 的应用内购买
- python - Ipywidgets (Vbox) 没有出现在 Jupyter 笔记本上
- javascript - 使用 vee-validate 在 vue js 中验证时出错
- c# - 如何使 ac# 程序在后台和启动时运行
- amazon-web-services - 如何通过aws API网关从aws lambda中的简单curl post请求中获取文件名
- jquery - jquery Ajax Post成功消息不起作用
- spring-boot - 创建 Stripe 支付后端 API 是否安全?