我需要有关Microsoft Access问题的帮助,
我有以下身份证明数据
ID
AAA
BBB
BBB
CCC
DDD
我需要根据ID创建一个新的数字ID字段。它看起来应该是这样的,
ID --- NewID
AAA --- 1
BBB --- 2
BBB --- 2
CCC --- 3
DDD --- 4
答案 0 :(得分:1)
让我们调用您现有的ID表tblOldIDs
。我们假设它有一列ID
,其中包含您在上面显示的数据。
现在,运行以下SQL语句:
create table tblNewIDs (
NewID autoincrement primary key
, OldID long not null references tblOldIDs (ID)
)
这将创建一个新表,其中包含与旧ID相对应的新ID。表引用约束将有助于强制执行此操作。
现在运行以下SQL:
insert into tblNewIDs (OldID)
select distinct o.ID
from tblOldIDs as o
现在,您的新表tblNewIDs
充满了旧ID到新数字ID的映射!
编辑:如果您将映射作为一次性事务,则上面的插入查询很好。但是,如果您需要重复映射过程,则可以使用以下查询仅将旧ID映射到新ID(如果尚未映射):
insert into tblNewIDs (OldID)
select distinct o.ID
from tblOldIDs as o
where o.ID not in (
select OldID
from tblNewIDs
)