1

我有 2 个表,这些表来自不同的应用程序,我想访问比较 2 列(标签名称)并向我指出哪些标签名称不匹配

在最好的情况下,不会有没有匹配的名称,因为两个列表应该相同。

但是,我想检查我的表格,因为我不想自己检查 1000 个名字。

是否可以访问标记或着色不匹配的名称?

如果不是,那么我区分“不匹配”值的最佳方法是什么?

提前致谢!

编辑:

我正在使用的表被称为

DB_Total

TagNames_EA

在“DB_Total”中,我有 3 列:

"Name"

"Address"

"Type"

在 TagNames_EA 中

我只有专栏

"Name"

我想比较这两者的原因是因为我想快速检查一下 EA 中的值是否正确。

我正在使用的代码是:

SELECT DB_Total.Address, DB_Total.Name, DB_Total.Type
FROM DB_Total LEFT JOIN TagNames_EA ON DB_Total.[Name] = TagNames_EA.[Name]
WHERE (((TagNames_EA.Name) Is Null));

不幸的是,这只返回没有匹配的行。

我想访问以标记我现有表中没有匹配的行。这可能吗?

4

2 回答 2

2

我的印象是您希望查看DB_Total中的所有行并包含一个计算字段,该字段指示TagNames_EA中是否存在匹配的Name

SELECT
    d.Address,
    d.Type,
    d.Name,
    IIf(t.Name Is Null, False, True) AS match_found
FROM
    DB_Total AS d
    LEFT JOIN TagNames_EA AS t
    ON d.Name = t.Name;

如果您想用颜色显示这些数据以区分匹配和不匹配的名称,请基于该查询构建一个表单并在match_found上设置一个条件格式表达式。

于 2013-02-20T07:25:30.953 回答
1

我从阅读您的问题中得到的感觉是您知道 DB_Total 包含正确的名称列表,可以用作参考列表。但是 TagNames_EA 可能包含也可能不包含正确的名称。换句话说,您想查看 TagNames_EA 中在 DB_Total 中没有对应名称的所有名称:

   select t.[Name] as TagNames_EA_Incorrect_Names
     from TagNames_EA as t
left join DB_Total as d
       on t.[Name] = d.[Name]
    where d.[Name] is null
于 2013-02-22T02:00:19.267 回答