有谁能告诉我这个语句的性能上的问题!

Lin2000y 2003-10-09 05:15:03
能告诉我这个语句的效率上的问题
SELECT CASE WHEN AD.SPDM IS NULL
THEN AC.SPDM ELSE AD.SPDM END AS SPDM,
CASE WHEN AD.GG1MC IS NULL
THEN AC.GG1MC ELSE AD.GG1MC END GG1MC,
CASE WHEN AD.GG2MC IS NULL
THEN AC.GG2MC ELSE AD.GG2MC END AS GG2MC,
AD.SL_S AS [订货(C)], AC.SL_S AS [出货(C)]
FROM (SELECT VW_PHJRD.SPDM, SHANGPIN.SPMC, GUIGE1.GGMC AS GG1MC,
GUIGE2.GGMC AS GG2MC, SUM(VW_PHJRD.SL) AS SL_S
FROM VW_PHJRD, SHANGPIN, CANGKU, GUIGE1, GUIGE2
WHERE VW_PHJRD.SPDM = SHANGPIN.SPDM AND
VW_PHJRD.DM1 = CANGKU.CKDM AND
VW_PHJRD.GG1DM = GUIGE1.GGDM AND
VW_PHJRD.GG2DM = GUIGE2.GGDM AND CANGKU.XZDM = '1' AND
CANGKU.YGDM = 'C'
GROUP BY VW_PHJRD.SPDM, SHANGPIN.SPMC, VW_PHJRD.GG1DM,
GUIGE1.GGMC, VW_PHJRD.GG2DM, GUIGE2.GGMC)
AD FULL OUTER JOIN
(SELECT VW_SDPHMX.SPDM, SHANGPIN.SPMC,
GUIGE1.GGMC AS GG1MC, GUIGE2.GGMC AS GG2MC,
SUM(VW_SDPHMX.SL) AS SL_S
FROM VW_SDPHMX, SHANGPIN, CANGKU AS CANGKU1, CANGKU,
GUIGE1, GUIGE2
WHERE VW_SDPHMX.SPDM = SHANGPIN.SPDM AND
VW_SDPHMX.DM1 = CANGKU1.CKDM AND
VW_SDPHMX.DM2 = CANGKU.CKDM AND
VW_SDPHMX.GG1DM = GUIGE1.GGDM AND
VW_SDPHMX.GG2DM = GUIGE2.GGDM AND
CANGKU1.XZDM = '1' AND CANGKU1.YGDM = 'C' AND CANGKU.XZDM = '0'
GROUP BY VW_SDPHMX.SPDM, SHANGPIN.SPMC, VW_SDPHMX.GG1DM,
GUIGE1.GGMC, VW_SDPHMX.GG2DM, GUIGE2.GGMC) AC ON
AD.SPDM = AC.SPDM AND AD.GG1MC = AC.GG1MC AND
AD.GG2MC = AC.GG2MC
...全文
47 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaken 2003-10-11
  • 打赏
  • 举报
回复
在sql server上这样执行,好像会导致内存溢出,你必须打上最新补丁才行!
szocean 2003-10-10
  • 打赏
  • 举报
回复
hao , guanzhu.
changechange 2003-10-09
  • 打赏
  • 举报
回复
up
Lin2000y 2003-10-09
  • 打赏
  • 举报
回复
拜托了各位大爷,本人一定高分相送。
我想知道这个这个语句应该怎么改好?
Lin2000y 2003-10-09
  • 打赏
  • 举报
回复
拜托了各位大爷,本人一定高分相送。
我想知道这个这个语句应该怎么改好?
Lin2000y 2003-10-09
  • 打赏
  • 举报
回复
没人告诉我吗?帮帮忙吧
zjcxc 2003-10-09
  • 打赏
  • 举报
回复
复制到查询分析器中,按"CTRL+K",显示执行计划,然后执行一下,就知道了.
pengdali 2003-10-09
  • 打赏
  • 举报
回复
FULL OUTER JOIN

肯定底。
伍子V5 2003-10-09
  • 打赏
  • 举报
回复
有些长哈,建议用临时表以及有针对性地建索引
Lin2000y 2003-10-09
  • 打赏
  • 举报
回复
如果我再做多一个类似这样的查询要怎么解决?
select ...
from (select ... from
((select .. from A) T1
full outter join
(select .. from A2)T2 on ....)B1
full outter join
(select ... from
((select .. from A) T1
full outter join
(select .. from A2)T2 on ....)B2
on ....)C1
再如此类推下去我应该怎么解决?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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