I have an oracle database and I have the following problem: If I make an select like this:
1*)
SELECT fk_proddes_id,fk_id_cod_deseu,
LISTAGG (TO_CHAR (cod_eliminare), ',')
WITHIN GROUP (ORDER BY cod_eliminare)
AS cod_eliminare
FROM sim_sd.proddes_ag_elim
GROUP BY fk_proddes_id, fk_id_cod_deseu
I get the following result:
FK_PRODDES_ID FK_ID_COD_DESEU COD_ELIMINARE
53 112 D 11,D 11,D 7
301 506 D 1,D 15
I need the unique code, so if I put:
2*)
SELECT fk_proddes_id,fk_id_cod_deseu,
unique_list ( LISTAGG (TO_CHAR (cod_eliminare), ',')
WITHIN GROUP (ORDER BY cod_eliminare))
AS cod_eliminare
FROM sim_sd.proddes_ag_elim
GROUP BY fk_proddes_id, fk_id_cod_deseu
the result is:
FK_PRODDES_ID FK_ID_COD_DESEU COD_ELIMINARE
53 112 D 11,D 7
301 506 D 15
so, I "loose the D1 - don't know why... If I put
3*)
SELECT fk_proddes_id,fk_id_cod_deseu,
unique_list ( LISTAGG (TO_CHAR (cod_eliminare), ',')
WITHIN GROUP (ORDER BY cod_eliminare DESC))
AS cod_eliminare
FROM sim_sd.proddes_ag_elim
GROUP BY fk_proddes_id, fk_id_cod_deseu
the result is:
FK_PRODDES_ID FK_ID_COD_DESEU COD_ELIMINARE
53 112 D 7,D 11
301 506 D 15,D 1
But I need D1,D15 and D11,D7. What's wrong with 2*) why do I "loose" D1 ???
Thanks!
Aucun commentaire:
Enregistrer un commentaire