阅读背景:

sql进行报表统计语句运行速度慢

来源:互联网 
下面是统计语句:
insert into laiyuan_baobiao(indate,plat,mode,qty,ip_qty,d_qty,x_qty,x_jy_qty,q_qty,q_jy_qty,t_qty,t_jy_qty,money,member_qty,return_qty,go_key)  select a.indate,a.ly_pingtai,a.moshi,a.num,a.ip_num,a.d_num,isnull(x.x_num,0) x_qty,isnull(x.x_jy,0) x_jy_qty,isnull(q.q_num,0) q_qty,isnull(q.q_jy,0) q_jy_qty,isnull(t.t_num,0) as t_qty,isnull(t.t_jy,0) t_jy_qty,isnull(t.t_money,0) money,a.member_num,a.h_num,a.go_key from (select indate,ly_pingtai,moshi,count(*) as num,count(distinct ip) as ip_num,go_key, (select count(*) from dingdan_info  inner join laiyuanid_dingdanid on dingdan_num=dingdanid inner join laiyuan l0 on l0.id=laiyuanid where l0.indate=ly.indate and l0.pingtai+isnull(moshi,'nature')=ly.ly_pingtai+isnull(ly.moshi,'nature') and go_key=ly.go_key) as d_num, (select count(*) from member_table  inner join laiyuanid_memberid on member_table.id=memberid inner join laiyuan l1 on l1.id=laiyuanid where l1.indate=ly.indate and l1.pingtai+isnull(moshi,'nature')=ly.ly_pingtai+isnull(ly.moshi,'nature') and go_key=ly.go_key) as member_num,(select count(*) from laiyuan l where indate=ly.indate and l.pingtai+isnull(moshi,'nature')=ly.ly_pingtai+isnull(ly.moshi,'nature') and go_key=ly.go_key and id !=( select top 1 id from laiyuan hly where hly.user_flag=l.user_flag order by id)) as h_num from laiyuan ly where   datediff(d,'2010-1-22',indate)>=0 and datediff(d,indate,'2010-3-3')>=0  group by indate,ly_pingtai,moshi,go_key) as a left join  (select l3.indate,l3.pingtai,l3.moshi,l3.go_key,count(*) t_num,sum(datediff(d,intime,dingdan_info.outtime)*roomcount) t_jy,sum(total_r_money*2.5) t_money from dingdan_info  inner join laiyuanid_dingdanid on dingdan_num=dingdanid inner join laiyuan l3 on l3.id=laiyuanid where state in(9,16,43,23,45) group by l3.indate,l3.pingtai,l3.moshi,l3.go_key) t on t.indate=a.indate and t.pingtai=a.ly_pingtai and t.moshi=a.moshi and t.go_key=a.go_key left join  (select l3.indate,l3.pingtai,l3.moshi,l3.go_key,count(*) x_num,sum(datediff(d,begin_date,end_date)*num) x_jy from dingdan_info  inner join laiyuanid_dingdanid on dingdan_num=dingdanid inner join laiyuan l3 on l3.id=laiyuanid where state not in(10,12) group by l3.indate,l3.pingtai,l3.moshi,l3.go_key) x on x.indate=a.indate and x.pingtai=a.ly_pingtai and x.moshi=a.moshi and x.go_key=a.go_key left join  (select l3.indate,l3.pingtai,l3.moshi,l3.go_key,count(*) q_num,sum(datediff(d,begin_date,end_date)*num) q_jy from dingdan_info  inner join laiyuanid_dingdanid on dingdan_num=dingdanid inner join laiyuan l3 on l3.id=laiyuanid where state not in(10,12,22,1,3,7) group by l3.indate,l3.pingtai,l3.moshi,l3.go_key) q on q.indate=a.indate and q.pingtai=a.ly_pingtai and q.moshi=a.moshi and q.go_key=a.go_key order by a.indate asc,a.num desc  insert into laiyuan_baobiao(indate,



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: