2015-02-24 3 views
0

Я искал способ удаления дубликатов из определенного столбца. Я нашел несколько решений для удаления повторяющихся строк, но мой отчет имеет уникальные записи в некоторых столбцах.SQL: Удаление дубликатов из столбца

select li.catnr, li.av_part_no, li.artist, li.title, li.i_status, bom.av_part_no comp_part_AW, nr.c_catnr MF_CATNR, nr.c_prodtyp MF_PROD, nr1.c_catnr LF_CATNR, nr1.c_prodtyp LF_PROD 
from leos_item li, TABLE(leos_flatbom_pkg.GetFlatBOM(li.av_part_no)) bom, scm_prodtyp sp, 
oes_nrbom nr, scm_prodtyp sp1, oes_nrbom nr1, scm_prodtyp sp2 
where li.cunr = 'W31836' 
and li.item_type = 'FP' 
and not li.av_part_no is null 
and not li.packtyp = 'PRSA' 
and bom.parent_part_no = li.av_part_no 
and bom.prodtyp = sp.prodtyp 
and sp.pr_typ = 'AW' 
and li.catnr = nr.p_catnr 
and li.prodtyp = nr.p_prodtyp 
and li.packtyp = nr.p_packtyp 
and nr.c_prodtyp = sp1.prodtyp 
and sp1.pr_typ = 'MT' 
and li.catnr = nr1.p_catnr 
and li.prodtyp = nr1.p_prodtyp 
and li.packtyp = nr1.p_packtyp 
and nr1.c_prodtyp = sp2.prodtyp 
and sp2.pr_typ = 'LF' 
and li.av_part_no = 'A0102449353-CD12-1656' 

Сценарий выше дает мне следующий результат ...

enter image description here ... то, что я хотел бы сделать, это удалить дубликаты из колонок; MF_CATNR, MF_PROD, LF_CATNR, LF_PROD

Желаемая результат был бы ...

enter image description here Возможно ли это?

Благодаря SMORF

+1

Плохая идея, ИМХО. (Похоже на NULL, если ничего не распечатано, это совсем другое.) – jarlh

+0

Это проблема с презентацией и как таковая должна выполняться на вашем уровне презентации (например, в форме, отчете, веб-странице и т. Д.). Не делайте этого в слое данных! – gvee

ответ

2

использовать комбинацию СЛУЧАЙ и RANK, чтобы определить, который является первым элементом, который необходим для отображения результата. Я не уверен в данных, так что это немного догадка, но, например, столбец comp_part_AW станет следующим:

CASE RANK() OVER (PARTITION BY li.catnr, li.av_part_no, li.artist, li.title, li.i_status 
      ORDER BY bom.av_part_no) 
    WHEN 1 THEN nr.c_catnr END AS comp_part_AW 
+0

Блестящий ... отлично работает - спасибо! – SMORF

Смежные вопросы