2013-07-31 2 views
0

Название путается, поэтому позвольте мне объяснить, у меня есть три таблицы, которые, как мне кажется, мне нужно работать.Как обновить столбец на основе идентификатора другого столбца, используя соответствующие столбцы

  • Первая таблица называется VendorCertifications и содержит CertID, Cert, VendorID столбцов.
  • Вторая таблица Vendors и имеет VendorID и Vendor колонны
  • Третья таблица VendorCert и имеет Cert и Company колонны

Что я сделал вставки VendorCert в VendorCertification и теперь у меня есть список из Сертификаты и ПК CertID теперь заполняются с использованием спецификации идентификации.

Что я хочу сделать, это вернуться и обновить таблицу VendorCertification с помощью VendorID от Vendors.

Я думал, что могу присоединиться к колонке VendorsVendor с колонкой VendorCertsCompany.

И затем используйте CTE для обновления столбца VendorCertificationVendorID.

Это то, что я написал:

with temptable as (
    select 
     vce.Company, v.Vendor, vce.Certification, V.VendorID 
    from 
     VendorCert as VCE 
    join 
     Vendors as V on V.Vendor = VCE.Company) 
update VendorCertifications 
set VendorID = temptable.VendorID 
where temptable.Certification = Certification 

Это не работает, я получаю «не может быть привязан» ошибка, я попытался выяснить, почему это дает мне, но я мне не повезло. Я даже не уверен, что я должен делать это таким образом, я не могу придумать способ сделать это, используя обычный оператор обновления, потому что он включает (по крайней мере, я думаю, что это связано) три таблицы. Любая помощь приветствуется. Перечень сертификатов составляет около 300 со списком продавцов около 40.

ответ

0

Пожалуйста, попробуйте следующее:

with temptable (Company,Vendor,Certification,VendorID) 
as(
select vce.Company,v.Vendor,vce.Certification,V.VendorID 
from VendorCert as VCE 
join Vendors as V 
on V.Vendor=VCE.Company) 

update VC 
set VC.VendorID=TT.VendorID 
from VendorCertifications VC join temptable TT on VC.Certification=TT.Certification 
0

Вы уже сделали intial вставку, но если у вас нет, то вы, возможно, использовали пункт OUTPUT чтобы вернуть идентификаторы, которые вы только что вставили, чтобы вы могли использовать их для размещения информации в дочерних таблицах. JUSt добавляет это, чтобы дать вам идеи для выполнения этой задачи в будущем.

Смежные вопросы