首页 > 解决方案 > 合并来自不同表的两个不同字段的 MS Access SQL 查询显示参考 ID 而不是实际值

问题描述

我的 access 数据库中有两个单独的表,它们都使用第三个表作为每个表上一个特定字段的参考。数据通过不同的表格输入到不同的表格中。然后我有几个查询,然后引用那些计算和显示唯一值的特定字段。这些查询显示实际值,然后我创建了一个执行相同操作的 sql 查询,只是它显示参考 ID 而不是实际字段中的值。

table ODI---------table CDN----------reference table
id RHA---------id CHA----------- -----id HA
1 空白---------1 收音机---------------1 互联网
2 互联网--------2 电视- -----------------2 广播
3 推荐-------3 广播---------------3 推荐
4 电视- ------------4 空白---------------4 回头客
5 空白---------5 互联网---- --------5 电视
6 互联网-------6 推荐------------6 员工
7 推荐--------7 推荐---- --------7 社交媒体

这是我试图使工作的代码。

SELECT m.[Marketing Results], Count(*) AS [Count]
 FROM (SELECT RHA as [Marketing Results] FROM ODI
  UNION ALL
  SELECT CHA as [Marketing Results] FROM CDN)  AS m
 GROUP BY m.[Marketing Results]
 HAVING (((m.[Marketing Results]) Is Not Null))
 ORDER BY Count(*) DESC;

我想要的结果是什么,

营销结果--计数
推荐------------------4
互联网-----------------3
广播---- -----------------2
电视-------------------------2

标签: sqlms-access

解决方案


具有别名的查找字段不显示表中实际存储的内容。存储的是 ID,而不是描述性别名。查找别名将携带到常规查询中,但联合查询仅提取实际存储的值。在某些时候需要通过加入关键字段来在查询中包含参考表,以便检索描述性别名。选项:

  1. 在每个 UNION 查询 SELECT 行中,连接表
  2. 将 UNION 查询连接到引用表
  3. 将聚合查询连接到引用表

大多数有经验的开发人员不会在表中构建查找,因为它们会引起混乱。此外,它们不能移植到其他数据库平台。http://access.mvps.org/Access/lookupfields.htm


推荐阅读