求 T-SQL语句
表A三个字段:表B有2个字段id,time,id,time12012-1112012-1122012-1112012-1232012-1112012-1322012-11...
表A三个字段: 表B有2个字段
id,time, id,time
1 2012-11 1 2012-11
2 2012-11 1 2012-12
3 2012-11 1 2012-13
2 2012-11
2 2012-12
想把B表数据插入到 A表中 但是有同样数据的不重复插入
想得出结果为
A表
1 2012-11
1 2012-12
1 2012-13
2 2012-11
2 2012-12
3 2012-11
求方法 T-SQL语句 展开
id,time, id,time
1 2012-11 1 2012-11
2 2012-11 1 2012-12
3 2012-11 1 2012-13
2 2012-11
2 2012-12
想把B表数据插入到 A表中 但是有同样数据的不重复插入
想得出结果为
A表
1 2012-11
1 2012-12
1 2012-13
2 2012-11
2 2012-12
3 2012-11
求方法 T-SQL语句 展开
3个回答
展开全部
我想你的意思是,id,time 两个字段的值都相同的不插入,那么语句应该是这样:
INSERT INTO a
SELECT *
FROM b
WHERE TIME NOT EXISTS (SELECT *
FROM a
WHERE b.Id = a.Id
AND b.Time = a.Time)
INSERT INTO a
SELECT *
FROM b
WHERE TIME NOT EXISTS (SELECT *
FROM a
WHERE b.Id = a.Id
AND b.Time = a.Time)
追问
select * from (select A.Cardid,A.Eventtime,B.em_id from uvw_CradEvent A INNER JOIN uvw_EMPIDCode B on A.CODE=B.CODE
WHERE EventTime>getdate()-30 )c
WHERE eventtiome not exists (
select * from HR_ATS_OriginalityCard b where c.cardid =b.fcardid)
能帮我看下 语法上那里出错了能改良下吗?
追答
你的语句我看了。没有太大的问题,不过我觉得没有必要用子查询吧。我觉得这样就可以:
SELECT a.Cardid,
a.Eventtime,
b.Em_Id
FROM Uvw_Cradevent a
INNER JOIN Uvw_Empidcode b
ON a.Code = b.Code
WHERE Eventtime > Getdate() - 30
AND NOT EXISTS (SELECT * FROM Hr_Ats_Originalitycard b WHERE a.Cardid = b.Fcardid)
如果需要调整,我想需要从索引上考虑了。
展开全部
insert into A表
(select * from 表B where id not in (select id from A表 where A表.time=表B.time);
(select * from 表B where id not in (select id from A表 where A表.time=表B.time);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into a
select * from b where time not in (select time from a)
select * from b where time not in (select time from a)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询