请看看这条sql怎么优化?谢谢

946 2003-04-21 04:24:29
SELECT ssfzgy_zdspzs.spzs ,
ssfzsp_spmspj.sp_sz ,
ssfzvw_spjchz1.lbid,
ssfzgy_zdSpflBh.ssrqid,
ssfzgy_zdspmc.spmc,
ssfzgy_zdspys.spys ,
ssfzgy_zdspcd.spcd ,
ssfzgy_zdSpflBh.spsh,
ssfzgy_zdSpflBh.spbh,
ssfzgy_zdSpflzm.spzsid,
ssfzgy_zdSpflzm.spmcid,
ssfzgy_zdSpflBh.spysid,
ssfzgy_zdSpflBh.spcdid,
ssfzsp_spmspj.sp_qd,
ssfzsp_spmspj.sp_cf,
ssfzsp_spmspj.sp_nxs,
ssfzsp_spmspj.sp_ssl ,
ssfzvw_spjchz1.spbhid,
ssfzvw_spjchz1.ckid,
ssfzvw_spjchz1.jc_spjs,
ssfzvw_spjchz1.jc_spsl,
ssfzvw_spjchz1.pp_spsl,
ssfzvw_spjchz1.pl_spsl,
ssfzvw_spjchz1.pi_spsl,
ssfzgy_zdspflbh.spbz,
ssfzgy_zdspflbh.sppz,
ssfzps_preps.ypsl as ypsl,
ssfzgy_zdspflbh.sppsbz,
sum(case when ssfzvw_spjchz1.ckid=ssfzps_spck.rcckid then ssfzps_spck.rcsl end) as psrcsl,
sum(case when ssfzvw_spjchz1.ckid=ssfzps_spck.psckid then ssfzps_spck.ypsl end) as pssl,
sum(case when ssfzvw_spjchz1.ckid=ssfzps_spck.psckid then ssfzps_spck.ypwcsl when ssfzvw_spjchz1.ckid=ssfzps_spck.rcckid then ssfzps_spck.rcwcsl end) as ypwcsl
FROM ((((((((ssfzvw_spjchz1 inner join ssfzgy_zdSpflBh with(nolock) on (ssfzvw_spjchz1.spbhid = ssfzgy_zdSpflBh.spbhid )) inner join
ssfzgy_zdSpflzm with(nolock) on (ssfzgy_zdSpflzm.spflzmid = ssfzgy_zdSpflBh.spflzmid))
inner join ssfzgy_zdspmc with(nolock) on(ssfzgy_zdSpflzm.spmcid = ssfzgy_zdspmc.spmcid))
left outer join ssfzgy_zdspys with(nolock) on(ssfzgy_zdSpflBh.spysid = ssfzgy_zdspys.spysid))
inner join ssfzgy_zdspzs with(nolock) on( ssfzgy_zdSpflzm.spzsid = ssfzgy_zdspzs.spzsid))
left outer join ssfzgy_zdspcd with(nolock) on( ssfzgy_zdSpflBh.spcdid = ssfzgy_zdspcd.spcdid))
inner join ssfzsp_spmspj with(nolock) on( ssfzgy_zdSpflBh.spbhid = ssfzsp_spmspj.spbhid))
left outer join ssfzps_preps on (ssfzvw_spjchz1.spbhid=ssfzps_preps.wlid and
ssfzvw_spjchz1.ckid = ssfzps_preps.spckid and ssfzps_preps.psbz='0')
left outer join ssfzps_spck on(ssfzvw_spjchz1.spbhid=ssfzps_spck.wlid))
GROUP BY ssfzgy_zdspzs.spzs,
ssfzsp_spmspj.sp_sz,
ssfzvw_spjchz1.lbid,
ssfzgy_zdSpflBh.ssrqid,
ssfzgy_zdspmc.spmc,
ssfzgy_zdspys.spys,
ssfzgy_zdspcd.spcd,
ssfzgy_zdSpflBh.spsh,
ssfzgy_zdSpflBh.spbh,
ssfzgy_zdSpflzm.spzsid,
ssfzgy_zdSpflzm.spmcid,
ssfzgy_zdSpflBh.spysid,
ssfzgy_zdSpflBh.spcdid,
ssfzsp_spmspj.sp_qd,
ssfzsp_spmspj.sp_cf,
ssfzsp_spmspj.sp_nxs,
ssfzsp_spmspj.sp_ssl ,
ssfzvw_spjchz1.spbhid,
ssfzvw_spjchz1.ckid,
ssfzvw_spjchz1.jc_spjs,
ssfzvw_spjchz1.jc_spsl,
ssfzvw_spjchz1.pp_spsl,
ssfzvw_spjchz1.pl_spsl,
ssfzgy_zdspflbh.spbz,
ssfzgy_zdspflbh.sppz,
ssfzps_preps.ypsl,
ssfzgy_zdspflbh.sppsbz,
ssfzvw_spjchz1.pi_spsl,
ssfzvw_spjchz1.tl_spsl
...全文
36 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
stephenxu 2003-04-27
  • 打赏
  • 举报
回复
把表名用其他的别名代替(select ssfzgy_zdspzs a,ssfzsp_spmspj b,......)ssfzgy_zdspzs.spzs可以简化成a.spzs,ssfzsp_spmspj.sp_sz可以简化成b.sp_sz,同样方法 把子查询也作为一个表空间,用别名c,d,e等,这样你的SQL语句就不用这么长了。至于你的表关联关系,如果是必须的,那除了用上述方法减短SQL语句外,似乎没什么办法了!
xiepoor2 2003-04-21
  • 打赏
  • 举报
回复
你的已经够简化的了,能写出来就行了。
CrazyFor 2003-04-21
  • 打赏
  • 举报
回复
WO~~!这么多表关联,非这么多表关联吗?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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