Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle - nilai Listagg yang unik

Saya menghapus distinct first pertama karena Anda sudah group by semua bidang di Select . Anda query, dan mengganti case when dengan select permintaan:

select ds.catnr,ds.planqty, ds.ordnr, ds.posnr, ds.segnr, 
    listagg((select distinct max(li1.paco) from leos_item li1 where li.av_part_no = li1.av_part_no and li.paco is not null), ', ') within group (order by pd.part_no) inq_no
    from oes_delsegview ds, oes_address ad, oes_opos op, oes_nrbom nr, scm_prodtyp sp, leos_item li, part_description pd
    where ds.delnr = ad.key
    and ad.adr = ds.deladr
    and ds.pos_o_status not in ('9', 'D')
    and ds.pos_c_status not in ('9', 'D')
    and ds.seg_o_status not in ('9', 'D')
    and ds.seg_c_status not in ('9', 'D')
    and ds.cunr in ('W31170','W31172')
    and ds.pos_type != 'RC'
    and ds.ordnr = op.ordnr
    and ds.posnr = op.posnr
    and ds.catnr = pd.catnr
    and ds.prodtyp = pd.prodtyp
    and ds.packtyp = pd.packtyp
    and ds.catnr = nr.p_catnr (+)
    and ds.prodtyp = nr.p_prodtyp (+)
    and ds.packtyp = nr.p_packtyp (+)
    and nr.c_prodtyp = sp.prodtyp (+) 
    and sp.prodgrp (+) = 'COMP'
    and substr(nr.c_prodtyp,1,2) not in ('MT','LF')
    and nr.c_catnr = li.catnr (+)
    and nr.c_prodtyp = li.prodtyp (+)
    and nr.c_packtyp = li.packtyp (+)
    and pd.catnr = '9780007938797'
    group by ds.catnr,ds.planqty, ds.ordnr, ds.posnr, ds.segnr


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONTAIN tidak bekerja dengan Oracle Text

  2. Masalah menggunakan/menampilkan karakter khusus dari Oracle db di .Net app

  3. Nama Kolom Alias ​​​​dalam pernyataan beberapa kasus

  4. .NET / Oracle:Cara mengeksekusi skrip dengan pernyataan DDL secara terprogram

  5. nomor atau jenis argumen yang salah saat memanggil Stored Proc