|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Justine Dreyfus Inscription : juin 2010 Messages : 109 ![]() |
Bonjour,
Voici ma requête actuelle : Code SQL :
Je veux pouvoir l'exécuter sur une base Oracle 10G... Or, PIVOT et LISTAGG n'existent pas... De plus, je ne connais pas à l'avance ni le nombre, ni les valeurs de mes ccp_libelle... Il varie suivant les bases clients sur lesquelles tournera ma requête... Comment faire??? Merci pour votre aide |
||
|
|
00
|
|
|
#3 | ||||||||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Effectivement le lien proposé par rafuoner permettra de gérer la conversion du listagg vers des solutions plus compatible mais comme il y a aussi la problématique du pivot ça n'est pas suffisant.
Par contre ton fonctionnel est lourd et complexe, je te propose donc une approche autour du schema scott plus facile à développer pour moi et testable pour tout le monde, mais je pense que ça t'aidera à aborder ta problématique. Partons de la requête suivante qui aggrège la somme des salaires par departement et par job : Code :
En reprenant la technique à base de listagg et de pivot au sein d'un curseur dynamique, on obtient : Code :
Ci-dessous une version statique de la requête pour pivoter les lignes fonctionnant sur les versions antérieures à la 11G : Code :
Pour ça on construit la requête dynamiquement de façon plus explicite que la requête dynamique à base de pivot : Code :
Un conseil commence par écrire une requête qui pivotera statiquement (avec quelques colonnes) ton besoin avant de commencer la procédure dynamique. Bon courrage pour l'implémentation ! PS : Sinon il y a aussi la version plus générale du pivot dynamique développé par thomas kyte, mais c'est peut être une complexité inutile dans ton cas. |
||||||||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com