SELECT * FROM (select n.kjnd,n.gsdm,m.ysdwdm,m.gsmc,n.M1,n.L1,n.M2,n.L2,n.M3,n.L3 from
(select gsdm as ysdwdm,gsmc from pubgszl where gsdm like '11700%' ) as m
left join
(Select
a.KJND,
a.GSDM,
a.YSDWDM,
a.M1,
L1=SUM(CASE WHEN (b.ZBLYDM like '0601%'or b.ZBLYDM like '0501%' or b.ZBLYDM like '0401%') THEN b.JE ELSE 0 END),
a.M2,
L2=SUM(CASE WHEN (b.ZBLYDM like '0601%') THEN b.JE ELSE 0 end),
a.M3,
L3=SUM(CASE WHEN (b.ZBLYDM like '0401%'or b.ZBLYDM like '0501%') THEN b.JE ELSE 0 end)
from
(Select
KJND,
GSDM,
YSDWDM,
M1=SUM(CASE WHEN (ZBLYDM like '0601%'or ZBLYDM like '0501%' or ZBLYDM like '0401%') THEN JE ELSE 0 END),
M2=SUM(CASE WHEN (ZBLYDM like '0601%') THEN JE ELSE 0 end),
M3=SUM(CASE WHEN (ZBLYDM like '0401%'or ZBLYDM like '0501%') THEN JE ELSE 0 end)
from ZB_MXZB
WHERE
(ZBZT<>'2') and (substring(sh_rq,1,6)= '201211') and (shr_id<>-1) and (ysdwdm like '117%') ---参数设置
GROUP BY KJND,GSDM,YSDWDM) a,zb_mxzb as b--,pubgszl as c
WHERE a.KJND=b.KJND AND a.GSDM=b.GSDM AND a.YSDWDM=b.YSDWDM and (substring(b.sh_rq,1,6)<= '201211') and shr_id<>-1--and a.ysdwdm=c.gsdm---参数设置
GROUP BY a.KJND,a.GSDM,a.YSDWDM,a.M1,a.M2,a.M3) as n
on m.ysdwdm=n.ysdwdm
group by n.kjnd,n.gsdm,m.ysdwdm,m.gsmc,n.M1,n.L1,n.M2,n.L2,n.M3,n.L3) Y
order BY ysdwdm
--M是本月数据,L是累计至本月数据。
--如本月没有执行时,连累计至本月数据也没有,如果本月有执行了,本月与累计数据都正确。
--怎么改一下,使本月没执行,就显示累计数据出现呢?
------解决方案--------------------
小李子,快快来!
------解决方案--------------------
倒分,举报你,另外,要不要那么长的语句啊。很低效的哦
------解决方案--------------------
我擦,没有到分。
看看怎么改,
------解决方案--------------------
那么变态的语句,看到都头疼。留个小李子吧
------解决方案--------------------
哥不懂这个玩意
------解决方案--------------------
小李子快出来接客
------解决方案--------------------
------解决方案--------------------
看到就不会 是什么语句啊 哥看不懂
------解决方案--------------------
小李子 你来吧 俺走错屋了....
------解决方案--------------------
小李子
------解决方案--------------------