0

无法使用插入语句执行合并(用于会计流程)

表 1 包含用于核销的 GRList(基于表 3 上的日期)

表 2 包含所有 GR 详细信息(从 2010 年 1 月 1 日至今的所有信息)

表 3 包含最早的索赔日期(例如:2018 年 4 月 1 日)

因此从上述场景中,最早的索赔日期(例如:2018 年 4 月 1 日)从表 3 中获取,然后在表 2 中搜索提取日期之前的 GR(<= 2018 年 4 月 1 日)并填充表 1 中的记录(从 2010 年 1 月 1 日到 2018 年 3 月 31 日)

在 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 列。该语句已终止。

4

1 回答 1

0

您的目标表列数据类型之一是 INT。您正在尝试插入一个对于数据类型 INT 来说太大的值 尝试将目标列数据类型从 INT 更改为 BIGINT。

于 2019-07-03T14:43:21.993 回答