大家帮忙优化一下这个查询语句。。
select isnull(sum(sl),0) as sl,isnull(sum(dkje),0) as dkje,isnull(sum(gcts),0) as gcts,hzjxsdm from
(select isnull(count(hth),0) as sl,isnull(sum(-dkje),0) as dkje,isnull(sum(-gcts),0) as gcts,hzjxsdm from ht where yxbz= '0 ' and convert(char(6),isnull(hzqxrq, ' '),112)= '200708 ' group by hzjxsdm
union all
select isnull(count(hth),0) as sl,isnull(sum(bgdkje),0) as dkje,isnull(sum(bgts),0) as gcts,jxsdm as hzjxsdm from htbgb where convert(char(6),isnull(bgsj, ' '),112)= '200708 ' group by jxsdm) a
group by hzjxsdm
怎么样优化这个查询。。把 union all去掉!!只要一个查询语句
------解决方案--------------------好乱
你不如把表结构写出来
然后说你要的效果.
------解决方案--------------------两个查询组合成一个子查询,然后分组统计,没什么不好啊.
再说了,union all并不影响你的速度.
------解决方案--------------------你把这段sql放到查询分析器里看看执行时间是多少,并且建议把第一行的isnull去掉,因为没有起作用,sql server处理null数据最耗费时间。