oracle 数据库
表一:b1
dwbh--单位编号 主键
dwmc--单位名称
bars--备案人数
表二: b2
grbh--个人编号 主键
dwbh--单位编号
表三: b3
dwbh--单位编号 主键
gebh--个人编号 主键
jfrq--缴费日期 主键现在我要查询出这样的结果
单位名称---备案人数条件是:某个单位下的人员一年只能缴费一次,而且如果这个单位下的人员如果都缴费过了的就不显示出来。比如b1,b3中有一个共同的单位编号110, 如果单位110在b3中的个人编号总数等于b1中备案人数说明110这个单位已经没有可缴费的人,这样的话就不显示出来。
大家帮帮忙!谢谢
表一:b1
dwbh--单位编号 主键
dwmc--单位名称
bars--备案人数
表二: b2
grbh--个人编号 主键
dwbh--单位编号
表三: b3
dwbh--单位编号 主键
gebh--个人编号 主键
jfrq--缴费日期 主键现在我要查询出这样的结果
单位名称---备案人数条件是:某个单位下的人员一年只能缴费一次,而且如果这个单位下的人员如果都缴费过了的就不显示出来。比如b1,b3中有一个共同的单位编号110, 如果单位110在b3中的个人编号总数等于b1中备案人数说明110这个单位已经没有可缴费的人,这样的话就不显示出来。
大家帮帮忙!谢谢
where b1.dwbh in( select b1.dwbh from b1, (select dwbh,count(grbh) jfrs from b3 group by dwbh) o
where b1.dwbh=o.dwbh and b1.bars>o.jfrs)
from b1,(select dwbh,count(gebh) cnt from b3 group by dwbh) b
where b1.dwbh=b.dwbh(+) and (b1.bars>b.cnt or b.cnt is null)顺便说一句,这表结构的设计有点问题,既然有了B2,那么B3里应该不需要出现单位编码这个字段了
上面的SQL是否能实现我预期的结果明天我验证一下。