IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

SQL noms et nombres de colonnes dynamiques


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 46
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    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.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 46
    Par défaut
    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)

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    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.

Discussions similaires

  1. Noms et nombres de colonnes dynamiques
    Par WillyPayne dans le forum SAS Base
    Réponses: 0
    Dernier message: 13/12/2010, 23h38
  2. nombre de colonnes dynamiques dans une Datagrid
    Par khayri dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/06/2007, 21h14
  3. JTable avec nombre de colonne dynamique
    Par fileaxfog dans le forum Composants
    Réponses: 3
    Dernier message: 17/05/2007, 14h07
  4. [SQL]Compter le nombre de colonne
    Par dumser1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2006, 09h53
  5. [T-SQL] Connaître le nombre de colonnes retourner par une PS
    Par NeoMan dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/12/2005, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo