多表联查 sql

14 个表联查,写了一个上午,现在想吐。。。


开始

select DISTINCT xsxx.xm,dwxx.dwxxid,dwxx.dwmc,zydm.zyxxid,zydm.zymc,

tjb.bjxxid,tjb.bjmc,gy.ss_dm,gy.ss_mc,cs.mc,gy.cws,lcc.lc_dm,lcc.lc_mc,dy.dy_dm,dy.dy_mc,
gyl.ssl_dm,gyl.ssl_mc,sdde.ysde,sdde.ydde,
sdxxz1.ysde as cys,sdxxz1.ydde as cyd,
sdxxz.ysde as mys,sdxxz.ydde as myd,
sddj.sfdj,sddj.dfdj,
(case when (sdxxz.ysde-sdxxz1.ysde-sdde.ysde)<0 THEN 0  ELSE (sdxxz.ysde-sdxxz1.ysde-sdde.ysde)  end)*sddj.sfdj as sfz,
(case when (sdxxz.ydde-sdxxz1.ydde-sdde.ydde)<0 THEN 0  ELSE (sdxxz.ydde-sdxxz1.ydde-sdde.ydde)  end)*sddj.dfdj as dfz,
((case when (sdxxz.ysde-sdxxz1.ysde-sdde.ysde)<0 THEN 0  ELSE (sdxxz.ysde-sdxxz1.ysde-sdde.ysde)  end)*sddj.sfdj
+(case when (sdxxz.ydde-sdxxz1.ydde-sdde.ydde)<0 THEN 0  ELSE (sdxxz.ydde-sdxxz1.ydde-sdde.ydde)  end)*sddj.dfdj) as allz


FROM t_jbxx_xsjbxx xsxx
LEFT JOIN t_jxjh_njzy nj on nj.njzyid=xsxx.zxxxid and nj.xxzzjgdm=xsxx.xxzzjgdm
LEFT JOIN t_jbxx_dwxx dwxx on dwxx.dwxxid=nj.dwxxid and nj.xxzzjgdm=dwxx.xxzzjgdm
LEFT JOIN t_jbxx_zydm zydm on zydm.zyxxid=nj.zyxxid and nj.xxzzjgdm=zydm.xxzzjgdm
LEFT JOIN t_jbxx_bjxx tjb on tjb.bjxxid=xsxx.bjxxid and xsxx.xxzzjgdm=tjb.xxzzjgdm
LEFT JOIN t_gygl_gyxx gy on gy.ss_dm=xsxx.ss_m and gy.xxzzjgdm=xsxx.xxzzjgdm
LEFT JOIN t_gygl_lcxx lcc on lcc.lc_dm=gy.lc_dm and lcc.xxzzjgdm=gy.xxzzjgdm
LEFT JOIN t_gygl_dyxx dy on lcc.dy_dm=dy.dy_dm and dy.xxzzjgdm=lcc.xxzzjgdm
LEFT JOIN t_gygl_gylxx gyl on gyl.ssl_dm=dy.ssl_dm and gyl.xxzzjgdm=dy.xxzzjgdm
LEFT JOIN codeset cs on cs.dm=gy.ssdj_m 
LEFT JOIN t_gygl_sdde sdde on  sdde.ss_dm=gy.ss_dm and sdde.xxzzjgdm = gy.xxzzjgdm
LEFT JOIN t_gygl_sdbxxz sdxxz on sdxxz.ss_dm=gy.ss_dm and sdxxz.xxzzjgdm=gy.xxzzjgdm
LEFT JOIN t_gygl_sdbxxz sdxxz1 on sdxxz1.ss_dm=gy.ss_dm and sdxxz1.xxzzjgdm=gy.xxzzjgdm
LEFT JOIN t_gygl_sddj sddj on sddj.xxzzjgdm=xsxx.xxzzjgdm
where 
sdxxz1.ny=CONCAT(SUBSTRING('2014-06' , 1 ,5),case when SUBSTRING('2014-06' , 6 ,2)=01 THEN 12 ELSE CONCAT('0',SUBSTRING('2014-06' , 6 ,2)-1) end)
and  sdxxz.ny='2014-06'
and sddj.ksdate<CONCAT(SUBSTRING('2014-06' , 1 ,5),case when SUBSTRING('2014-06' , 6 ,2)=01 THEN 12 ELSE CONCAT('0',SUBSTRING('2014-06' , 6 ,2)-1) end)
and sddj.jsdate>CONCAT(SUBSTRING('2014-06' , 1 ,5),case when SUBSTRING('2014-06' , 6 ,2)=01 THEN 12 ELSE CONCAT('0',SUBSTRING('2014-06' , 6 ,2)-1) end)
and sdde.ny='2014-05' 
and xsxx.xm like '%张%'
and dwxx.dwxxid='29'
and zydm.zyxxid='13'
and tjb.bjxxid=''

结束

辅助1

select * from t_jxjh_njzy

select * from t_jbxx_xsjbxx
select * from t_gygl_gyxx
select * from t_gygl_lcxx
select * from codeset
select * from t_gygl_sdde
SELECT * FROM `t_gygl_sddj` sddj  WHERE sddj.ksdate<'2014-05' and sddj.jsdate>'2014-05';


(sdxxz.ysde-sdxxz1.ysde-sdde.ysde)*sddj.sfdj as sfz,
(sdxxz.ydde-sdxxz1.ydde-sdde.ydde)*sddj.dfdj as sdz,
((sdxxz.ysde-sdxxz1.ysde-sdde.ysde)*sddj.dfdj+(sdxxz.ydde-sdxxz1.ydde-sdde.ydde))*sddj.dfdj as allz


select case when SUBSTRING('2015-01' , 6 ,2)=1 THEN 12 ELSE SUBSTRING('2015-05' , 6 ,2)+1 end


辅助2

select 
CONCAT(
SUBSTRING('2015-05' , 1 ,5), 
case when SUBSTRING('2015-02' , 6 ,2)=01 THEN 12 ELSE CONCAT('0',SUBSTRING('2015-02' , 6 ,2)-1) end


)
from dual


select 
CONCAT(
'2000', 
'55'
)
from dual





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值