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 :

Transposer colonne en ligne


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Avril 2005
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 238
    Par défaut Transposer colonne en ligne
    Bonjour,

    J'ai deux tables dont la requête ci-dessous liste par jour et par matricule des libellés.
    Je voudrais regrouper par date et par matricule ces libellés sous forme de ligne et non pas en colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT t1.dat,t1.matri,t1.ordre, t2.libs
    from t1, t2
    where (t1.ordre = t2.ordrea or t1.gravite = t2.ordreb)
    AND t1.anom = t2.numero
    AND t1.matri = '0001'
    AND t1.dat = '06/11/2017'
    J'ai essayé plusieurs solutions en recherchant, mais en vain.
    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    C'est un pivot?

    Un exemple

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select * from 
     (select T.description Groupe, to_char(datecours,'YYYY') Annee, count(p.id) NumParticipant 
      from participant p 
             inner join cours c on p.codecours = c.id 
     
             inner join type t on t.id=c.TypeCours
     
      group by T.description, to_char(datecours,'YYYY')
      )
      PIVOT (sum(NumParticipant) as Total,
                   avg(NumParticipant) as Moyenne
      FOR Groupe
      IN ('Adultes' ,'Juniors', 'Petits Dragons' ))
     
      Order by Annee

    Quelques remarques
    • Présent depuis la version 11
    • Opération inverse possible avec la commande UNPIVOT
    • Encore peu souple quant à déterminer dynamiquement les colonnes : Une syntaxe similaire existe pour le générer en XML, et seule cette syntaxe permet d’utiliser une sous-requête ou la clause ANY dans la clause IN… dommage…

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select * from 
    (select T.description Groupe, to_char(datecours,'YYYY') Annee, count(p.id) NumParticipant
    from participant p 
           inner join cours c on p.codecours = c.id 
           inner join type t on t.id=c.TypeCours
    group by T.description, to_char(datecours,'YYYY')
    )
    PIVOT XML (sum(NumParticipant) as Total
    FOR (Groupe)
    IN (any))
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre très actif
    Inscrit en
    Avril 2005
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 238
    Par défaut
    Merci pour ces éléments, mais je ne suis pas sur de comprendre avec mon exemple.

Discussions similaires

  1. Transposer colonne en ligne
    Par GuiomCh dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/10/2017, 09h58
  2. Réponses: 8
    Dernier message: 13/04/2017, 13h21
  3. Transposer colonnes en lignes
    Par Frank dans le forum SQL
    Réponses: 4
    Dernier message: 14/10/2011, 17h55
  4. transposer colonnes en lignes
    Par freestyler dans le forum Oracle
    Réponses: 5
    Dernier message: 05/04/2007, 14h32
  5. [SQL] Transposer des colonnes en lignes + LIKE et SOUNDEX
    Par Anne1969 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/11/2005, 13h44

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