一点背景:
在这个项目中,我试图组合从不同应用程序中获取的 2 个表。
其中一个应用程序给了我几个表,我已经成功地将它们组合成一个表:
DB_Total
另一个应用程序给了我一个只有标记名的表。此表称为:
TagNames_EA
现在,我想将“TagNames_EA”表中的“Name”列添加到“DB_Total”表中,以便比较“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;
这很好用,但我还想查看 DB_Total 表中 TagNames_EA 表中的“名称”值。
我知道可以使用
ALTER TABLE DB_Total
ADD Names_EA
但是,当我尝试这个时:
ALTER TABLE DB_Total
ADD Names FROM TagNames_EA AS Names_EA
这没用
是否有捷径可寻?
编辑:我试图简化我解释我的情况的方式。
编辑2:示例
在“DB_Total”表中,我有一个名称列表,它应该与“EA_Names”表中的名称完全相同。
DB_Total:
Name
S1\SVS_AK\ENA[3]
S1\SVS_AK\ENA[4]
S1\SVS_AK\ENA[5]
S1\SVS_AK\ENA[6]
S1\SVS_AK\ENA[7]
S1\SVS_AK\ENA[8]
但是,有时会出错,我想检查是否有不匹配的名称。像这样:
TagNames_EA
Name
S1\SVS_AK\ENA[3]
S1\SVS_AK\ENA[4]
S1\SVS_AK\ENA[5]
S1\SVS_AK\EMA[6] <--- This is a Mistake and will come up as a mismatch
S1\SVS_AK\ENA[7]
S1\SVS_AK\ENA[8]
目前,我使用的代码向我的 DB_Total 表添加了一个新列,其值为“-1”(用于匹配)或值“0”(用于没有匹配的名称)
看起来像这样:
DB_Total:
Name match_found
S1\SVS_AK\ENA[3] -1
S1\SVS_AK\ENA[4] -1
S1\SVS_AK\ENA[5] -1
S1\SVS_AK\ENA[6] 0
S1\SVS_AK\ENA[7] -1
S1\SVS_AK\ENA[8] -1
我想要完成的是一个包含以下内容的表格:
DB_Total:
Name Names_EA match_found
S1\SVS_AK\ENA[3] S1\SVS_AK\ENA[3] -1
S1\SVS_AK\ENA[4] S1\SVS_AK\ENA[4] -1
S1\SVS_AK\ENA[5] S1\SVS_AK\ENA[5] -1
S1\SVS_AK\ENA[6] S1\SVS_AK\EMA[6] 0
S1\SVS_AK\ENA[7] S1\SVS_AK\ENA[7] -1
S1\SVS_AK\ENA[8] S1\SVS_AK\ENA[8] -1
在乔发表评论之后,如果我还想在同一个表中查看 EA_Table 的名称值,我开始怀疑这是正确的方法。