У меня есть две таблицы dim_distributor
и distributor_variant
.Я получаю несколько ошибок в SQL Server при попытке обновить столбец в одной таблице столбец для другого
Существует distributorvariantname
столбца в distributor_variant
и distributorname
столбца в dim_distributor
, которые должны содержать одинаковые значения между двумя столами.
В обеих таблицах есть столбец distributorid
, который должен содержать одинаковые значения между двумя таблицами.
Есть некоторые distributorid
поля, которые установлены 0
в distributor_variant
таблицы, и я хочу, чтобы обновить их одним и тем же distributorid
значений в dim_distributor
таблицы.
Существует также столбец distributorvariantid
в distributor_variant
, и я не хочу обновлять тот, который установлен на 0
.
Ниже приведены два запроса, которые я написал, чтобы попытаться выполнить это.
Ниже запрос дает мне идентификатор в
Мульти-часть «dv.DistributorID» не может быть привязан.
Я проверил правописание, что мне здесь не хватает?
update distributor_variant
set dv.distributorID = dd.distributorID
from distributor_variant dv
join dim_distributor dd on dd.distributorname = dv.distributorvariantname
where dv.distributorID =0 and dv.distributorVariantID !=0
Ниже запрос дает мне
Subquery вернулся более чем на 1 значение. Это недопустимо, если подзапрос следует за =,! =, <, < =,>,> = или когда подзапрос используется как выражение.
Я попытался перед круглыми скобками и получил неверный синтаксис перед ошибкой ключевого слова «в».
update distributor_variant
set distributorID = (select dd.distributorID
from dim_distributor dd, distributor_variant dv
where dd.DistributorName = dv.distributorVariantName
and dv.distributorID =0 and dv.distributorVariantID !=0)
Что я делаю неправильно?
Любая помощь будет высоко оценена.