要求:1 如果表Client 的字段AccessDate等于今天的日期(几号)就向表RemindDetails 插入一条数据.
2 每月只插入一次,如果当月的clientID已存在则不重复插入.
3 比如 如果表Client 中的AccessDate等于20090715,那么在每个月的15号都插入一次.
下面的语句是sql2005的作业,总是重复插入同样的数据,请指点.谢谢insert into RemindDetails select clientID,AccessDate,'C001','',clientID,'','','',0 from Client where AccessDate = convert(varchar(10),getdate(),121) 

解决方案 »

  1.   

    insert into RemindDetails 
    select clientID,AccessDate,'C001','',clientID,'','','',0 from Client 
    where AccessDate = convert(varchar(10),getdate(),121) 
    and clientID not in (select clientID from RemindDetails)
      

  2.   

    insert into RemindDetails select clientID,AccessDate,'C001','',clientID,'','','',0 from Client a where AccessDate = convert(varchar(10),getdate(),121) 
    and not exists (
      select 1 from RemindDetails
      where clientID = a.clientID 
      and AccessDate = a.AccessDate
      )