Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2010, 20h54   #1
Invité régulier
 
Inscription : août 2008
Messages : 46
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 46
Points : 8
Points : 8
Par défaut SQL noms et nombres de colonnes dynamiques

Bonjour à tous,

J'annonce dès le début que je suis un bleu en SQL, raison pour laquelle je demande votre aide.
Passons tout de suite au problème.

J'aimerais construire dynamiquement le résultat selon les différents types de Ligne dans la table ci_dessous.

TABLE1 :
Axe Ligne
Est AA
Est BB


AA, BB, CC ici peuvent être autres choses
On peut les voir comme
Code :
SELECT DISTINCT Ligne FROM TABLE1
TABLE2 : (sert de référence, donc est déjà fixée)
Ligne_table2 Ligne_libelle
A AA
B BB
C CC
D DD
E EE

Table_A :
No Nom A_Lundi A_Mardi A_Mercredi
1 toto 1 2 3
2 titi 5 4 6

Table_B :
No Nom B_Lundi B_Mardi B_Mercredi
1 toto 10 20 30
2 titi 25 42 62

Ces tables Table_A, Table_B exisent, correspondant au nom de lignes de la colonne Ligne_table2 de la TABLE2 ci_dessus. 1, 2, toto, titi existent dans ces tables de manières identique.
J'aimerais avoir que ma requête retourne :
No Nom A_Lundi B_Lundi A_Mardi B_Mardi A_Mercredi B_Mercredi
1 toto 1 10 2 20 3 30
2 titi 5 25 4 42 6 62

Ici le nombre de colonnes dépend de la SELECT DISTINCT Ligne de la TABLE1
J'espère être assez clair dans mon explication, et que vous pourriez m'aider.

Merci d'avance !
WillyPayne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 21h23   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
En SQL, pas possible.
En PL/SQL, c'est possible.

Ouvrez un curseur qui va faire votre select distinct, puis concaténez une belle chaîne de caractères que vous lancerez avec execute immediate.
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 23h45   #3
Invité régulier
 
Inscription : août 2008
Messages : 46
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 46
Points : 8
Points : 8
Merci Waldar pour la réponse.
Le problème est dans SAS. J'ai posé la question ici en pensant que ca peut se faire en SQL, ce qui n'est pas le cas.

Mais pour la pédagogie, ou servir à qq'un qui rencontrera le même problème, pourriez-vous me montrer plus que le chemin pour le résoudre svp ?
(Qui sait ?...Je pourrais l'adapter pour qu'il fonctionne dans SAS)
WillyPayne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 00h55   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
L'idée c'est de construire une requête de type PIVOT en SQL dynamique, faites une recherche sur ce mot clef, c'est un problème récurrent !

Mais en principe, cette mise en page se fait plutôt après (imaginez le tableau croisé dynamique d'Excel), en SQL c'est pour du dépannage mais ça ne résoudra pas tout, notamment le cas du nombre de colonnes inconnus.
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h43.


 
 
 
 
Partenaires

Hébergement Web