Bonjour à tous,
soit une table T comme ceci:
et une fonction d'agrégat du style: http://pages.infinit.net/orautils/pages/stragg.htm (Fonction qui concatène les valeurs d'une colonne d'agrégat)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ------------------------------------------------------ SOCIETE VALEUR DATE ------------------------------------------------------ X 12 22/10/2005 X 17 12/01/2004 X 22 25/07/2007 Y 12 22/10/2005 Y 17 12/03/2006 Y 22 20/07/2007 Y 22 05/07/2007 ...
Je voudrais obtenir pour chaque SOCIETE une ligne:
soit pour l'exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 X [Liste des VALEURs triées par date] [Liste des DATEs triées] Y [Liste des VALEURs triées par date] [Liste des DATEs triées]
en gros - en omettant le tri - la requête serait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ------------------------------------------------------ SOCIETE VALEURS DATES ------------------------------------------------------ X 17;12;22 12/01/2004;22/10/2005;25/07/2007 Y 12;17;22;22 22/10/2005;12/03/2006;05/07/2007;20/07/2007 ...
N.B: En réalité la fonction d'agrégat que j'utilise à la place de stragg créé un VARRAY au lieu d'une concaténation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select societe, stragg(valeur),stragg(TO_CHAR(date)) from T group by societe
Merci d'avance pour votre aide.
Partager