数据筛选缺少内容

使用如下语句得到的33项数据,但其实RYBQ应该有58项,通过语句将那些ZYRS=0的RYBQ数据项没显示,应该得到那些RYBQ的数据项并显示为0,求问?

select d.RYBQ ,  count(distinct a.SYXH) ZYRS

from AA a (nolock)

inner join BB b  (nolock) on a.SYXH=b.SYXH

left join CC c  (nolock) on b.SYXH=c.SYXH and c.SSXH=1

left join DD d on b.SYXH = d.SYXH

where a.ZDDM like 'C%%'

and left(a.ZDDM, 3) not between 'C81' and 'C96'

and left(b.CYRQ, 10) between '2023-04-08' and '2023-05-08'

group by d.RYBQ

image.png

FineReport LH0730 发布于 2023-5-9 08:39
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-5-9 08:50

你得把D表放到左边,也就是A表位置,然后先不加过滤条件,一个一个条件调试

最佳回答
0
大林3143511Lv5中级互助
发布于2023-5-9 08:52

艾玛,你这联合查询搞的,每个几年功力搞不出来,我是inner join /left join /right join傻傻分不清楚

我遇到这样的问题,一般这样处理:先单独查询,然后两层两层嵌套查询,一层一层查询,直到发现问题。

最佳回答
0
CD20160914Lv8专家互助
发布于2023-5-9 09:04

image.png

  • LH0730 LH0730(提问者) 三个条件全部去掉肯定是58项,单独去掉一条条件是少于58项的,现在是ZYRS=0的那些数据没有显示出来
    2023-05-09 09:34 
  • CD20160914 CD20160914 回复 LH0730(提问者) 那就是你要看哪个限制了呀。。你要看它的数据是如何的,先查询不要做group by 了。
    2023-05-09 09:35 
  • 4关注人数
  • 458浏览人数
  • 最后回答于:2023-5-9 09:04
    请选择关闭问题的原因
    确定 取消
    返回顶部