Невозможно выполнить оператор слияния со вставкой (для процесса учета)
Таблица1 содержит GRList для списания (на основе даты в Таблице3)
Таблица2 Содержит все детали GR (вся информация изС 1 января 2010 года по настоящее время)
В таблице 3 указана самая ранняя дата заявки (например, 1 апреля 2018 года)
, то есть из вышеприведенного сценария Самая старая заявка даты (например, 1 апреля2018) выбирается из таблицы 3, а затем ищет в таблице 2 GR, которые находятся до извлеченной даты (<= 1 апреля 2018 года), и заполняет запись (с 1 января 2010 года по 31 марта 2018 года)) в Таблице 1 </p>
Код, проверенный на SQL
MERGE Table1 As Target
Using (select column1, column2 From Table2 AS tbl2 INNER JOIN Table3 as tbl3
ON tbl2.column1 = tbl3.column1
WHERE
tbl2.column1 = tbl3.column1 AND tbl2.column2 = tbl3.column2) AS SOURCE
ON
(Target.Column1 = Source.Column1 AND Target.Column2 = Source.Column2 AND Target.Column5 <= Source.Column5 )
WHEN MATCHED AND
Target.Column1 = Source.Column1 AND Target.Column2 = Source.Column2
THEN UPDATE SET Target.Column4='Updated'
WHEN NOT MATCHED BY TARGET
THEN INSERT
(Column1, Column2, Column3)
VALUES
(Source.Column1, Source.Column2, Source.Column3)
ОШИБКА
Сообщение 248, Уровень 16, Состояние 1, Строка 23 Преобразование значения nvarchar '3000143371' переполнило столбец int.Заявление было прекращено.