【发布时间】:2015-07-08 15:19:43
【问题描述】:
我需要编写一个查询,将数据从 TableA 插入到 TableB。
如果TableB中已经存在数据,则不要插入。
TableA 是一个表,其中包含使用 SSIS 包导入的数据,所有字段均为 varchar 数据类型。
TableB 是一个包含不同数据类型字段的表。
进行插入时,我需要将来自TableA 的数据插入TableB,确保TableB 以正确的格式获取数据。
这是一个TableA,其中的数据使用SSIS 导入为varchar,请输入所有内容:
这是TableB的结构:
我正在编写以下查询:
insert into
TableB(Date,Receipt,Description,CardMember,AccountNumber,Amount,YYYYMM)
select Date,Receipt,Description,CardMember,AccountNumber,Amount,
convert(varchar(4), year(getdate())) + convert(varchar(2),
month(getdate())) from TableA a
where not exists(select 1 from TableB b where
b.CardMember = a.CardMember) and (convert(varchar(4), year(getdate()))
+ convert(varchar(2), month(getdate()))) = b.YYYYMM
TableB 中的YYYYMM 列应包含YYYYMM 数据,其中YYYY 是当前年份,MM 是当前月份。
例如:
year(GetDate()) = 2015
month(GetDate()) = 7
我在找 201507
所以,查询成功执行后,我的 TableB 看起来像这样:
我的查询在某处出错,执行时出现以下错误:
消息 102,级别 15,状态 1,第 1 行 'id' 附近的语法不正确。消息 102,第 15 级,状态 1,第 4 行 'YYYYMM' 附近的语法错误。
正确的做法是什么?
【问题讨论】:
-
您引用的别名
tt以前没有在任何地方定义过。 -
我更新了SQL语句。
标签: sql sql-insert