论坛首页 综合技术论坛

多表联查时候的条件单值过滤

浏览 2213 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-23  

在数据库的多表关联中,有时候需要一个值来进行查询过滤出不重复的值,因为多表的关系使用GroupBy和Distinct有时候不能够满足需要,下面的sql语句直接实现单值条件的查询。

  select D.XM AS NAME,
       D.XB,
       D.CSRQ,
       C.SG,
       C.TZ,
       A.TJRYMC,
       A.TJRQ,
       A.XCTJRQ,
       A.FINISHED,
       A.EMPI
  from ET_TJRQDZ A, ET_TJJL B, ET_TJJL1 C, DA_GRDA0 D
 WHERE A.EMPI = B.EMPI
   AND A.XCTJRQ = B.XCTJRQ
   AND B.ID = C.TJID
   AND A.EMPI = C.EMPI
   and A.EMPI = D.EMPI
   and A.JGBM = '03'
   and A.XCTJRQ >= 40312
   and A.XCTJRQ <= 40329
   and c.yeid = (select id
                   from (select max(yeid) as id, empi
                           from ET_TJJL1 E
                          where E.empi = B.empi
                          group by empi) F)

 主要作用是在最后一个子查询上面起到了过滤的作用。欢迎大家提供更好的解决方案。

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics