Я использую это в операторе слияния, но теперь получаю ошибку Неверное имя объекта «Источник».Недопустимое имя объекта «Источник» при использовании слияния
Я не получаю эту ошибку ни в одном из других моих утверждений о слиянии. Источник ниже. Я анонимный до некоторой степени так, пожалуйста, дайте мне знать, если это не ясно
MERGE dbo.Destination WITH (HOLDLOCK) AS Target
USING
(
SELECT DISTINCT id, col3,
CAST(LEFT(DATEADD(m,months,CONVERT(date,CONCAT(origination,'/01'))),7) as varchar(20)) as CalendarMonth,
col1, col2,col4 FROM dbo.Staging
) AS Source
ON (Target.ID=Source.id
AND Target.Month=Source.col3)
WHEN MATCHED THEN
UPDATE SET
Target.CalendarMonth=Source.CalendarMonth,
Target.colF= (SELECT CASE WHEN col1>0 THEN 1 END AS colF FROM Source),
Target.colD=(SELECT CASE WHEN col4>0 THEN 1 END AS colD
FROM Source),
Target.colC=(SELECT CASE WHEN col1=0 AND col2=0
THEN 1 END AS colC FROM Source),
Target.colB(SELECT CASE WHEN col1>0 AND col2
THEN 1 END AS colB FROM Source),
Target.colG=(SELECT CASE WHEN col1>0 THEN col1 END AS colG FROM Source),
Target.colE=(SELECT CASE WHEN col4>0 THEN col3 END
AS colE FROM Source),
Target.PaidMonth=(SELECT CASE WHEN col1=0 AND col2=0
THEN col3 END AS PaidMonth
FROM Source),
WHEN NOT MATCHED BY TARGET THEN
INSERT
(Destination Table columns
)
VALUES
( Source values including derived values from above);
END
Заранее спасибо за помощь!
UPDATE:
рекомендация CD @ Сэм помог, где я заменил оператор выбора в полученных колонках с случай, когда COL4> 0 THEN col3 END и так далее. Спасибо всем за вашу помощь!
Является ли это пример скопировать/вставить? Это не полное утверждение. – CDC
Нет, я изменил имена переменных из моего фактического кода. Я, вероятно, немного ленился с КОГДА НЕ СКАЗАЛ ПО ЦЕЛЬЮ Вставить часть, мои извинения за это. Я имел в виду, что исходные значения вставляются в столбцы целевой таблицы, включая приведенные выше столбчатые вычисления, сопоставленные с соответствующими целевыми столбцами. –
Это имеет смысл. Когда вы это делаете, трудно понять, есть ли синтаксическая ошибка в этой части инструкции. – CDC