Ну, это не сложно:
create table addresses (
address_id int identity(1, 1) primary key,
street varchar(255),
city varchar(255),
state varchar(255),
zip varchar(10)
);
(Выше приведены адреса США.)
insert into addresses (address)
select street, city, state, zip
from claimant
union -- on purpose to remove duplicates
select street, city, state, zip
from attorney
union -- on purpose to remove duplicates
select street, city, state, zip
from insurer;
Теперь у вас есть таблица уникальных адресов. Когда вы идете, чтобы загрузить в ваши новые таблицы, вы можете join
, чтобы соответствовать значениям:
insert into new_insurers ( . . ., addressid)
select . . ., a.addressid
from insurer i left join
addresses a
on i.street = a.street and
i.city = a.city and
i.state = a.state and
i.zip = a.zip;
Возможно, вам придется проявить дополнительную осторожность, если какое-либо значение равно NULL
, но это должно дать вам общее представление.