Sign-up....

这条SQL语句该怎么写?

表A:有字段sercode varchar2(10)

表B:有字段sercode varchar2(10),sendtime date

表C:有字段sercode varchar2(10), sendtime date

请问,我现想从表B中找出 B.sercode = A.sercode and B.sendtime =sysdate 的记录插入表C中,

由于这条SQL是循环执行,怎么样才能保证已插入表C中的记录不再重复插入????

望高手指点,谢先!!!

[233 byte] By [msdn] at [2007-8-14 15:34:43]
# 1 Re: 这条SQL语句该怎么写?

写用过程,用游标来处理..

dinya2003 at 2004-8-11 16:41:58 >
# 2 Re: 这条SQL语句该怎么写?

不知道你是想说“你想循环执行这条语句“还是“这条sql语句是循环执行的“

如果是第一种,也就说表B是增加的,可以考虑触发器来执行

如果是第二中,直接

insert into C

select * from B where B.sercode = A.sercode and B.sendtime =sysdate

即可

wylwyl1130 at 2004-8-11 17:02:38 >
# 3 Re: 这条SQL语句该怎么写?

INSERT INTO C (SERCODE, SENDTIME)

SELECT DISTINCT B.SERCODE, B.SENDTIME

FROM A, B

WHERE B.SERCODE = A.SERCODE

AND B.SENDTIME = SYSDATE

AND NOT EXISTS (SELECT * FROM C WHERE B.SERCODE = C.SERCODE AND B.SENDTIME = C.SENDTIME)

sijian2001 at 2004-8-11 17:04:58 >
# 4 Re: 这条SQL语句该怎么写?

insert into C

select * from B where B.sercode = A.sercode and B.sendtime =sysdate and

B.sercode not in (select sercode from C)

yogihoo at 2004-8-11 17:07:25 >
# 5 Re: 这条SQL语句该怎么写?

insert into c(sercode , sendtime )

(select sercode, sendtime from a, b

where B.sercode = A.sercode and B.sendtime =sysdate

and (( B.sercode, B.sendtime ) NOT IN (SELECT C.sercode, C.sendtime FROM C)))

daihaidong at 2004-8-11 17:12:00 >

Oracle

All Classified