我在MS Access中有2个表, TableA 和 TableB 。表A只有1个字段: myFieldID ,而TableB只有1个字段: myFieldName (实际上我有更多字段,但这些字段对于我的问题)。 两个表都有相同的记录,但以不同但相似的方式编写。 例如,TableA具有:
|TableA.myFieldId |
|-----------------|
|MM0001P |
|HR0003P |
|MH0567P |
所以你可以看到所有的记录都是这样形成的(最后是P): ([A-Z] [A-Z] [0-9] [0-9] [0-9] [0-9] P) 然后,TableB有:
|TableB.myFieldName |
|--------------------------------------------|
|MH-0567 Materials Handling important Role |
|MM-0001 Materials Management Minor Role |
|HR-0003 Human Resources Super Important Role|
所以这个有格式(最后没有' P'): ([A-Z] [A-Z] - [0-9] [0-9] [0-9] [0-9]([A-Z] | [a-z] *))
首先,我想在这些字段上使用tableA和tableB进行连接查询,但正如您所看到的,每次结果都将为NULL,因为两个字段的记录完全不同。 所以我想更改 TableA.myFieldId 中的每个名称及其在 TableB.myFieldName 中的相应名称 问题是,两个表都有大约100万条记录,并且两个表中的字段重复多次,而且我不知道如何做到这一点(MS Access甚至不让我使用正则表达式)
答案 0 :(得分:2)
我会创建第二个表中所有唯一条目的表(或查询,如果它经常更改)和第一个表的相应键。然后使用该表或查询来帮助加入这两个表。
像
这样的东西Select myFieldName as FName, left(myFieldName,2) & mid(myFieldName,4,4) & "P" as FID
from TableB
group by FName, FID
重要提示 - 在两个文件中都找到了所有ID,或者两个表中的记录是否都在另一个表中?如果它们不一直匹配,您可能需要额外的逻辑或步骤来从tableA和tableB制作主表。