如何优化SQL语句

只有1张表,CustomModule_201706081343;

字段只有“部门,名字、项目类型,项目号,上班日期,正班工时,加班工时,周末加班 ”

要求:A:要把相同 项目类型  的所有项目号之  工时   分类汇总 每个人的 正班,加班工时、周末工时 总合.

且 B点: 并自动算出各项目类型之所有项目号工时 与 个人查询时段内的 总工时的占比:总正班点比、总加班点比

select  a.bm,a.name,a.xmlx,sum(a.zbgs) as sub_zb,sum(a.psjbgs) as sub_ps,sum(a.zmjbgs) as sub_zm,sum(zbgs)+sum(psjbgs)+sum(zmjbgs) 
as subtotal,b.total,cast(round((sum(a.zbgs)+sum(a.psjbgs)+sum(a.zmjbgs))/b.total*100,2)  as decimal(8,2)) as zb 
from CustomModule_201706081343 a left join (select name,sum(zbgs)+sum(psjbgs)+sum(zmjbgs) as total 
from CustomModule_201706081343 
where (sj between '2019-10-01'and '2019-10-31') and bm like'%RD_%' group by name) b on a.name=b.name 
where (a.sj between '2019-10-01'and '2019-10-31') and a.bm like'%RD_%'group by a.bm,a.name,a.xmlx,b.total

请教:

我上述SQL查询语句在SQL完全可以执行.但在IIS的IE前端介面查询时,如果输入的 起止时间超过15天,就会提示‘Root 查询超时已过期’,并中断查询,

 如果用临时表方式,如何拆写以下语句更优,求大神给拆一下?不会写

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值