|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 56 ![]() |
Bonjour,
J'ai un problème d'ordre lorsque je fais de l'aggrégation de valeurs. Voici un exemple de données : Code :
USER0002 USER1111 1 Info 1 30/08/2011 12:20:07 U-1703 A USER1111 1 Info 1 30/08/2011 12:20:23 U-1902 B USER1111 1 Info 1 30/08/2011 12:22:10 U-2026 A Je souhaite grouper les valeurs suivant USR, GRP et INFO et concaténer les NOM et concaténer les CODE voici un exemple de requête pour grouper et concaténer les valeurs : Code :
USER0002 USER1000 2 Info 2 30/08/2011 12:13:11 U-0013 A USER1111 1 Info 1 30/08/2011 12:20:07 U-1703,U-2026,U-1902 A,B,A Le problème c'est que pour le USER1111, je veux les noms dans l'ordre et les codes associés dans l'ordre : U-1703,U-1902,U-2026 et en code : A,B,A, car les 2 infos sont liées et il faut qu'elles soient dans le même ordre, dans l'ordre de la DateHeure. Je suis sous Oracle 10.2.0.4.0, et j'ai essayé sous Oracle 11.2.0.1.0 et l'ordre de concaténation change entre les versions. J'ai essayé de mettre un order by : Code :
Comment faire ? Merci |
||||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
wm_concat/stragg ne trie pas.
Code :
|
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 56 ![]() |
Oui l'aggrégation ne trie pas en effet, d'où mon problème.
La solution proposée, suppose la création du type : Code :
CREATE type varchar2_tt AS TABLE of VARCHAR2(100); |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Vous pouvez trouver une réponse dans "the collect function in 10g"
|
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 56 ![]() |
merci mnitu, tout est bien expliqué dans ton lien.
Sinon, après avoir tourné la requête dans tous les sens j'ai une autre solution qui ne nécessite aucun type ni fonction : Code :
merci |
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Très bien. Sur le même site: listagg function in 11g release 2
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 56 ![]() |
oui en effet.
Le problème c'est que je dois être compatible minimum Oracle 10gR2. En tout cas merci pour le lien, je vais le garder de côté. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com