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 :

Pivot et requete


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 95
    Par défaut Pivot et requete
    Bonjour comment faire un pivot sur cette requete ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select l.produit, to_char(L.datcreat,'YYYYMM') as resultat_date, sum(L.qtlivr) as qtlivr
    from lignes_commandes L
    where  to_char(L.datcreat,'YYYYMM') between '200901' and to_char(sysdate,'YYYYMM') 
    group by l.produit,to_char(L.datcreat,'YYYYMM')
    order by l.produit, to_char(L.datcreat,'YYYYMM')
    Cela me donne le résultat :
    maref1 / 200901 / 142
    maref2 / 200901 / 50
    .
    .
    .
    maref2 / 200912 / 33


    Comment avoir le résultat sous la forme :


    200901 200902 200903
    maref1 142 34 33
    maref2 50 20 12 ....



    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    sujet mainte fois évoqué sur ce forum.
    Lance une recherche, tu devrais trouver des milliers de réponses !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 95
    Par défaut Un exemple
    C'est bien ce que j'ai fais, mais je n'ai pas bien compris les exemples.
    Donc un exemple avec mes données ci-dessus aurait fortement aidé ma recherche.

    Merci de votre aide.

  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
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      select l.produit,
             sum(case to_char(L.datcreat,'YYYYMM') when '200901' then L.qtlivr end) as qte_200901,
             sum(case to_char(L.datcreat,'YYYYMM') when '200902' then L.qtlivr end) as qte_200902,
             sum(case to_char(L.datcreat,'YYYYMM') when '200903' then L.qtlivr end) as qte_200903,
             sum(case to_char(L.datcreat,'YYYYMM') when '200904' then L.qtlivr end) as qte_200904,
             ...
        from lignes_commandes l
       where datcreat >= date '2009-01-01' 
    group by l.produit
    order by l.produit asc;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    Quel version de Oracle?

    A partir de la 11g il y a la fonction PIVOT pour faire ca :

    http://www.oracle.com/technology/pub...11g-pivot.html

    Sinon il faut utiliser la fonction DECODE.

    ____________________________________

    http://seekaftersomething.over-blog.com/

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 95
    Par défaut Merci beaucoup waldar
    Merci beaucoup waldar pour l'exemple,
    avec nos propres données c'est toujours plus facile de comprendre.

    Cela fonction merveilleusement bien.

    Encore merci pour vos réponses.

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

Discussions similaires

  1. SQL 2005 Requete PIVOT
    Par persan dans le forum Développement
    Réponses: 1
    Dernier message: 12/10/2008, 01h14
  2. Tout afficher dans une requete de type "Transform .. pivot"
    Par Mythrandil dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/07/2007, 09h44
  3. Réponses: 2
    Dernier message: 28/03/2007, 23h26
  4. pivoter le résultat d'une requete
    Par aminux dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 05/06/2006, 09h34
  5. Pivoter les réultats d'une requete SQL
    Par elitost dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/09/2004, 17h55

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