Programming/Oracle

CASE문 작성하기~

초록깨비 2008. 12. 23. 19:42
728x90
select sum(case
                      when ou_part = 'A0046' then
                          nvl(in_set_qty, 0)    + nvl(in_momt_qty, 0)  +
                          nvl(in_eri_qty, 0)    + nvl(in_busoc_qty, 0) +
                          nvl(in_modan_qty, 0)  + nvl(in_ju_qty, 0)    +
                          nvl(in_judan_qty, 0)  + nvl(in_abdan_qty, 0) +
                          nvl(in_socdan_qty, 0) + nvl(in_somaedan_qty, 0)
                      else
                       0
                   end) knit_qty,
               sum(case
                      when ou_part != 'A0046' then
                          nvl(in_set_qty, 0)    + nvl(in_momt_qty, 0)  +
                          nvl(in_eri_qty, 0)    + nvl(in_busoc_qty, 0) +
                          nvl(in_modan_qty, 0)  + nvl(in_ju_qty, 0)    +
                          nvl(in_judan_qty, 0)  + nvl(in_abdan_qty, 0) +
                          nvl(in_socdan_qty, 0) + nvl(in_somaedan_qty, 0)
                      else
                       0
                   end) knit_out_qty
          into tmp_knit_qty,
                tmp_knit_out_qty
          from TB_51018H
         where ip_date like as_yyyymm||'%' 
           and ip_part = '300'
           and file_no  = substr(cmp_fno,1,6)
           and file_seq = substr(cmp_fno,7,2)
           and (nvl(in_set_qty, 0)    + nvl(in_momt_qty, 0)  +
                nvl(in_eri_qty, 0)    + nvl(in_busoc_qty, 0) +
                nvl(in_modan_qty, 0)  + nvl(in_ju_qty, 0)    +
                nvl(in_judan_qty, 0)  + nvl(in_abdan_qty, 0) +
                nvl(in_socdan_qty, 0) + nvl(in_somaedan_qty, 0)) != 0 ;
728x90