select e.lscj,e.lscjje,e.dj
from spkfk a(nolock)
join ywmxk b(nolock) on a.spid=b.spid
left join ps_sphwph e(nolock) on e.spid=b.spid and e.hw=b.hw and e.dj_sn=b.dj_sn and b.djbh=e.djbh
join cwk c(nolock) on b.djbh=c.djbh
join mchk d(nolock) on c.shdwbh=d.dwbh
where a.beactive='是'
and ( c.djbs='XSA' or c.djbs='XSC')
and b.psr='王小'
and c.rq >='2014-01-01'
and c.rq <='2014-05-31'
e.lscj,e.lscjje,e.dj 查询出的结果均为NUll, 表ps_sphwph 中这几个字段都有数值
是语句结构不对?
------解决方案--------------------
楼主要理解left join 的含义了
--将left join 改为inner join
select e.lscj,e.lscjje,e.dj
from spkfk a (nolock)
inner join ywmxk b(nolock) on a.spid=b.spid
inner join ps_sphwph e(nolock) on e.spid=b.spid and e.hw=b.hw and e.dj_sn=b.dj_sn and b.djbh=e.djbh
inner join cwk c(nolock) on b.djbh=c.djbh
inner join mchk d(nolock) on c.shdwbh=d.dwbh
where a.beactive='是'
and ( c.djbs='XSA' or c.djbs='XSC')
and b.psr='王小'
and c.rq >='2014-01-01'
and c.rq <='2014-05-31'