2013-02-20 107 views
1

我有2个表,这些表来自不同的应用程序,我想访问比较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)); 

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

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

+0

您应该在问题中包含表格的架构信息。知道,有人可能会给你一个SQL查询,可以回答你的问题。如果你也可以包含一些样本数据。 – 2013-02-20 06:57:47

+0

这里缺少很多:表格模式,输入值,预期输出,实际输出和您当前拥有的代码。 – 2013-02-20 07:04:27

+0

我添加了大部分可用的信息,我希望它足以让事情变得清晰! – Gutanoth 2013-02-20 07:22:13

回答

2

我的印象是你想看到从DB_Total所有行,包括计算字段,指示在TagNames_EA匹配的名称是否存在。

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

+0

非常感谢,作品像一个魅力! – Gutanoth 2013-02-20 07:40:43

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 
相关问题