如下语句,条件中的表yb_mmyb_brzd有几个字段,

zyh         fjbname             jlid

1            aaaa                 1

1            bbbb                 2

2          vvvv                    2

3          vvvvv                   1

其中同一个zyh可能有多条记录,也可能只有一条记录,怎么修改下面的检索条件,使得单有多条记录的时候

取jlid最小的对应那个fjbname,单条记录的时候就取那条的fjbname呢;现在是取jlid=1的fjbname;如果没有1,就取2,没有2就取3;以此类推。

SELECT YB_MMYB_PERSONINFO.JYDJH,

ZY_BRRY.NCYLZ,

ZY_BRRY.ZYHM,

ZY_BRRY.BRXM,

ZY_BRRY.BRBQ,

ZY_BRRY.SFZH,

ZY_BRRY.BRXB,

ZY_BRRY.GZDW,

yb_mmyb_brzd.FJBNAME,

ZY_ZYJS.KSRQ,

ZY_ZYJS.ZZRQ,

CASE WHEN ZY_BRRY.BRXB = 1 THEN '男' WHEN ZY_BRRY.BRXB = 2 THEN '女' ELSE '不祥' END AS BRXB,

ZY_ZYJS.FYHJ,

ZY_ZYJS.czyljz  as  NCYLHZJZ,

(ZY_ZYJS.FYHJ - ZY_ZYJS.czyljz - ZY_ZYJS.YYDF) AS ZFHJ,

ZY_ZYJS.YYDF,

0 as lsh,

zy_zyjs.jsrq,

case when c.zjje = 0 then 0 when c.zjje <> 0 then c.zjje end AS YFHJ

FROM  ZY_ZYJS,ZY_BRRY,YB_MMYB_PERSONINFO,gy_brxz,yb_mmyb_brzd,

(select zy_jsmx.zyh,zy_jsmx.jscs,sum(zy_jsmx.zjje) as zjje

from zy_jsmx,gy_sfxm

where gy_sfxm.fyfl = 2 and

gy_sfxm.sfxm = zy_jsmx.fyxm

group by zy_jsmx.zyh,zy_jsmx.jscs ) c

WHERE ZY_BRRY.ZYH(+) = ZY_ZYJS.ZYH AND

YB_MMYB_PERSONINFO.zyh = zy_brry.zyh and YB_MMYB_PERSONINFO.jlzt <> -1 and

ZY_ZYJS.ZYH = c.ZYH(+) AND

ZY_ZYJS.BRXZ = gy_brxz.brxz AND

gy_brxz.dbpb = 3 and

ZY_ZYJS.JSRQ >= :ADT_S AND

ZY_ZYJS.JSRQ <= :ADT_E AND

ZY_ZYJS.ZFPB = 0 AND

ZY_ZYJS.JSCS = c.JSCS(+) AND

ZY_ZYJS.czyljz <> 0 and

YB_MMYB_PERSONINFO.rylbbm in ('1','2') and

yb_mmyb_brzd.zyh = zy_brry.zyh and

yb_mmyb_brzd.jlid = 1

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐