1

我需要有关 Microsoft Access 问题的帮助,

我有以下 ID 数据,

ID 
AAA   
BBB   
BBB   
CCC   
DDD   

我需要根据 ID 创建一个新的数字 ID 字段。它应该看起来像这样,

ID  --- NewID
AAA ---   1
BBB ---   2
BBB ---   2
CCC ---   3
DDD ---   4
4

1 回答 1

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
)
于 2013-09-26T00:44:15.340 回答