求 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语句
展开
 我来答
流浪云风
2012-08-13 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:920万
展开全部
我想你的意思是,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)
追问
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)
如果需要调整,我想需要从索引上考虑了。
c6iz
2012-08-13 · TA获得超过1417个赞
知道大有可为答主
回答量:1426
采纳率:100%
帮助的人:1026万
展开全部
insert into A表
(select * from 表B where id not in (select id from A表 where A表.time=表B.time);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unitech2010
2012-08-13 · TA获得超过1062个赞
知道小有建树答主
回答量:1025
采纳率:100%
帮助的人:896万
展开全部
insert into a
select * from b where time not in (select time from a)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式