我的SQL算法执行效率好低啊,数据库无响应,快进来帮帮我

cydall 2010-10-21 08:20:38
select  '环比' as years,
str((select month1 from HB2010_JS)*1.0 /(select month12 from Year2009_View)*100) + '%' month1,
str((select month2 from HB2010_JS)*1.0 /(select month1 from Year2010_View)*100) + '%' month2,
str((select month3 from HB2010_JS)*1.0 /(select month2 from Year2010_View)*100) + '%' month3,
str((select month4 from HB2010_JS)*1.0 /(select month3 from Year2010_View)*100) + '%' month4,
str((select month5 from HB2010_JS)*1.0 /(select month4 from Year2010_View)*100) + '%' month5,
str((select month6 from HB2010_JS)*1.0 /(select month5 from Year2010_View)*100) + '%' month6,
str((select month7 from HB2010_JS)*1.0 /(select month6 from Year2010_View)*100) + '%' month7,
str((select month8 from HB2010_JS)*1.0 /(select month7 from Year2010_View)*100) + '%' month8,
str((select month9 from HB2010_JS)*1.0 /(select month8 from Year2010_View)*100) + '%' month9,
str((select month10 from HB2010_JS)*1.0 /(select month9 from Year2010_View)*100) + '%' month10,
0 month11,0 month12,
str((select avgs from HB2010_JS)*1.0 /(select avgs from Year2009_View)*100) + '%' avgs ,
str((select sums from HB2010_JS)*1.0 /(select sums from Year2009_View)*100) + '%' sums


上面的是我的原代码,我写成简单的如下:

A/B,
A/B,
A/B,
.....


执行一条,勉强可以出来结果,一起执行,数据库就没有响应了,我感觉是除法的问题,因为我去掉了那个转换函数也是一样。。。有谁帮我忙,或者给我找个新方法,我这个视图中的执行语句,因为数据每个月在变化。需要用到视图
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuifengde 2010-10-21
  • 打赏
  • 举报
回复
看你的语句,难道每个视图的结果最后只有一条记录?
还是分多条执行吧
claro 2010-10-21
  • 打赏
  • 举报
回复
各表的数据量如何?

这么多表同时进行全表扫描,会超时的。
「已注销」 2010-10-21
  • 打赏
  • 举报
回复
把最后一个逗号去掉
SUMS=STR(H.SUMS*1.0/YV.SUMS) +'%'
「已注销」 2010-10-21
  • 打赏
  • 举报
回复
try一下
SELECT  '环比' AS YEARS,
MONTH1=STR(H.MONTH1*1.0/YV.MONTH12)+ '%',
MONTH2=STR(H.MONTH2*1.0/Y.MONTH1)+ '%',
MONTH3=STR(H.MONTH3*1.0/Y.MONTH2)+ '%',
MONTH4=STR(H.MONTH4*1.0/Y.MONTH3)+ '%',
MONTH5=STR(H.MONTH5*1.0/Y.MONTH4)+ '%',
MONTH6=STR(H.MONTH6*1.0/Y.MONTH5)+ '%',
MONTH7=STR(H.MONTH7*1.0/Y.MONTH6)+ '%',
MONTH8=STR(H.MONTH8*1.0/Y.MONTH7)+ '%',
MONTH9=STR(H.MONTH9*1.0/Y.MONTH8)+ '%',
MONTH10=STR(H.MONTH10*1.0/Y.MONTH9)+ '%',
0 MONTH11,0 MONTH12,
AVGS=STR(H.AVGS*1.0/YV.AVGS) +'%',
SUMS=STR(H.SUMS*1.0/YV.SUMS) +'%',
FROM HB2010_JS H,YEAR2009_VIEW YV,YEAR2010_VIEW Y
「已注销」 2010-10-21
  • 打赏
  • 举报
回复
这么多子查询...

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧