Обновить таблицу из таблицы при объединении по псевдониму столбца - PullRequest
2 голосов
/ 15 сентября 2011

Я прошу прощения, что мой SQL Kung Fu не на высоте, но это кажется основной задачей, которую я не могу выполнить.

У меня есть две таблицы в Sql Server 2008

tblBoxAddress --Адрес --Zip --Latitude --Longitude

tblUpdatedDated --Адрес --latitude --longitude

Я должен обновить широту и долготу tblBoxAddress с помощью лат. и долго. из tblUpdatedData путем сопоставления по адресу. Проблема в том, что tblUpdatedData.Address содержит почтовый индекс. В tblBoxAddress это разбито на два отдельных столбца.

Мне удалось заставить оператор select работать правильно

select * from tblUpdatedData t
inner join (
Select Address + ' ' + zip As 'full_address', Latitude, Longitude from tblBoxAddress) d
on d.full_address = t.Address

Однако я не могу понять, как объединить адрес и почтовый индекс tblBoxAddress в операторе обновления. Это было так далеко, как я получил:

update d
set d.Latitude = t.latitude, d.Longitude = t.longitude
FROM tblBoxAddress d inner join 
tblUpdatedData t on t.Address = d.Address + ' ' + d.zip as 'full_address'

Любая помощь приветствуется.

1 Ответ

3 голосов
/ 15 сентября 2011

Вам не нужно указывать псевдоним в предложениях об обновлении.например попробуйте:

update d
set d.Latitude = t.latitude, d.Longitude = t.longitude
FROM tblBoxAddress d inner join 
tblUpdatedData t on t.Address = d.Address + ' ' + d.zip;
...