ORACEl根据条件写sql

select f1.NAME,
       t1.year,
       t1.remark,
       t1.month,
       f1.id_card,
       f1.GWGZ,
       f1.JSGZ,
       f1.BLBT,
       f1.TSJT,
       f1.ZFBT,
       f1.BFGZ,
       f1.YFGZ,
       f1.KYLBX,
       f1.KZYNJ,
       f1.KZFGJJ,
       f1.KYILBX,
       f1.KGRSDS,
       f1.KKHJ,
       f1.SFGZ,
       f1.JWJT,
       f1.SHBT,
       f1.DQFJJTHJ,
       f1.GGXBT,
       f1.GWJTBT,
       f1.HJ,
       KZFGJJhj,
       f1.seygwgz,
       f1.seyjsgz,
       (NVl(f1.gwgz,0) + f1.jsgz + f1.blbt + f1.tsjt + f1.KZFGJJhj + f1.jwjt +
       f1.shbt + f1.ggxbt + f1.gwjtbt + f1.bfgz + f1.seygwgz + f1.seyjsgz -
       f1.kylbx - f1.kzynj - f1.kyilbx - f1.kgrsds) heng
  from (select rec_id,
               t.NAME,
               t.id_card,
               sum(GWGZ) GWGZ,
               sum(JSGZ) JSGZ,
               sum(BLBT) BLBT,
               sum(tsjt) TSJT,
               sum(ZFBT) ZFBT,
               sum(bfgz) BFGZ,
               sum(YFGZ) YFGZ,
               sum(KYLBX) KYLBX,
               sum(KZYNJ) KZYNJ,
               sum(KZFGJJ) KZFGJJ,
               sum(KYILBX) KYILBX,
               sum(KGRSDS) KGRSDS,
               sum(KKHJ) KKHJ,
               sum(SFGZ) SFGZ,
               sum(JWJT) JWJT,
               sum(SHBT) SHBT,
               sum(DQFJJTHJ) DQFJJTHJ,
               sum(GGXBT) GGXBT,
               sum(GWJTBT) GWJTBT,
               sum(HJ) HJ,
               sum(KZFGJJhj) KZFGJJhj,
               sum(seygwgz) seygwgz,
               sum(seyjsgz) seyjsgz
          from (select rec_id,
                       NAME,
                       id_card,
                       GWGZ,
                       JSGZ,
                       BLBT,
                       TSJT,
                       ZFBT,
                       BFGZ,
                       YFGZ,
                       KYLBX,
                       KZYNJ,
                       KZFGJJ,
                       KYILBX,
                       KGRSDS,
                       KKHJ,
                       SFGZ,
                       JWJT,
                       SHBT,
                       DQFJJTHJ,
                       GGXBT,
                       GWJTBT,
                       HJ,
                       year,
                       month,
                       (case
                         when month != '12' then
                          KZFGJJ * 0
                         else
                          KZFGJJ * 12 * null
                       end) KZFGJJhj,
                       (case
                         when month != '12' then
                          GWGZ * 0
                         else
                          GWGZ
                       end) seygwgz,
                       (case
                         when month != '12' then
                          JSGZ * 0
                         else
                          JSGZ
                       end) seyjsgz
                  from T_WAGE_DATA
                 where 1 = 1
                   and NAME like '%--%'
                   and to_char(enter_time, 'yyyy-MM') >= '2020-12'
                   and to_char(enter_time, 'yyyy-MM') <= '2020-12'
                   and data_valid = '1') t
         group by rec_id, ID_CARD, NAME) f1
  left join (select year, month, numbers, rec_id, remark
               from T_WAGE_DATA t
              where 1 = 1
                and NAME like '%--%'
                and to_char(enter_time, 'yyyy-MM') >='2020-12'
                and to_char(enter_time, 'yyyy-MM') <= '2020-12'
                and data_valid = '1') t1
    on t1.rec_id = f1.rec_id
 order by to_number(year) desc,
          to_number(month) desc,
          to_number(numbers) asc

 

posted on 2021-01-29 14:58  IT-QI  阅读(50)  评论(0编辑  收藏  举报