if exists(select * from sysobjects where id=object_id('newmail') and type='u' )
drop table newmailselect mid,count(*) as counts into newmail from mail_event_2007_04 group by mid
update mail_2007_04 set mail_2007_04.counts=mail_2007_04.counts+newmail.counts from mail_2007_04,newmail where mail_2007_04.mid=newmail.mid
drop table newmail怎么能改成不用中间表newmail 直接用子查询把东西update到mail_2007_04 中?
drop table newmailselect mid,count(*) as counts into newmail from mail_event_2007_04 group by mid
update mail_2007_04 set mail_2007_04.counts=mail_2007_04.counts+newmail.counts from mail_2007_04,newmail where mail_2007_04.mid=newmail.mid
drop table newmail怎么能改成不用中间表newmail 直接用子查询把东西update到mail_2007_04 中?
set mail_2007_04.counts=mail_2007_04.counts+newmail.counts
from mail_2007_04,newmail
where mail_2007_04.mid=newmail.mid========================================这样,结构上比较清晰。
as
select mid,count(*) as counts from mail_event_2007_04 group by mid
update mail_2007_04
set mail_2007_04.counts=mail_2007_04.counts+newmail.counts
from mail_2007_04,newmail
where mail_2007_04.mid=newmail.mid
我认为用子查询不建立中间过程是可以做下来的,,不过写不出来,有高人也可以指点下