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 :

Afficher les colonnes en ligne


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut Afficher les colonnes en ligne
    Bonjour,

    J'ai construit une requête SQL qui me renvoie par ligne , une date , un nom de participant , un indicateur de type numérique présent le matin , un indicateur de type numérique présent l'après midi.

    Exemple : 25/10/2011 TOTO 1 0 , pour dire toto présent le matin du 25/10/2011

    Par jour je n'ai pas forcément les mêmes participants , soit le 26/10/201 j'ai TITI présent l'après midi.

    Je dois à présent représenter cela sous forme de table , par ligne l'ensemble des mes participants et par colonne mes jours

    Exemple :
    PARTICIPANT | DATE 1 - MATIN | DATE 1 APMIDI |DATE 2 - MATIN | DATE 2 APMIDI
    
    TOTO                X                                       
    TITI                                                                                            X
    Pour précision je suis en version 10G d'oracle.

    j'ai trouvé cela , et appliqué , seulement tout est dans la même colonne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    COLUMN employees FORMAT A50
     
    SELECT deptno, wm_concat(ename) AS employees
    FROM   emp
    GROUP BY deptno;
     
        DEPTNO EMPLOYEES
    ---------- --------------------------------------------------
            10 CLARK,KING,MILLER
            20 SMITH,FORD,ADAMS,SCOTT,JONES
            30 ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD
     
    3 rows selected.
    Est-ce que quelqu'un a une idée sur la façon de procéder ?

  2. #2
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Bonjour,

    Je me suis déjà heurté à ce problème et me suis inspiré de cet article :

    http://www.orafaq.com/node/1871

    Cdlt,
    LBO72.

  3. #3
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Avant 9i (et après aussi mais c'est du spécifique Oracle) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select ename ,
           decode( deptno, 10, 'X', null )  dept_10,
           decode( deptno, 20, 'X', null )  dept_20,
           decode( deptno, 30, 'X', null )  dept_30,
           decode( deptno, 40, 'X', null )  dept_40
    from emp ;
    A partir de la 9i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select ename ,
           case when deptno = 10 then 'X' else null end  dept_10,
           case when deptno = 20 then 'X' else null end  dept_20,
           case when deptno = 30 then 'X' else null end  dept_30,
           case when deptno = 40 then 'X' else null end  dept_40
    from emp ;

  4. #4
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Bonsoir,

    j'ai laissé tombé et j'ai revu ma copie , impossible de trouver quelque chose via SQL d'assez dynamique pour satisfaire mon besoin

  5. #5
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Billets dans le blog
    6
    Par défaut
    c'est génial la fonction wm_concat que tu as découvert.
    "shaun_the_sheep"
    auparavant j'utilisais la génération du XML puis extraction pour que je transpose des lignes en une colonne. cette dernière est gourmande en termes de mémoire et de temps.

  6. #6
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Ce sujet a eu un sacré succès : "Affichages: 2 095" au 25/04 à 10h00

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/08/2013, 17h59
  2. Afficher les colonnes en lignes
    Par villegente dans le forum SQL
    Réponses: 4
    Dernier message: 23/08/2011, 15h03
  3. Requête SQL : Afficher les colonnes en ligne, et vice versa
    Par paflolo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/03/2009, 09h16
  4. Réponses: 2
    Dernier message: 13/06/2006, 15h45
  5. [debutant] afficher les numéros de lignes
    Par ameliepim dans le forum MFC
    Réponses: 4
    Dernier message: 07/06/2006, 10h22

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