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

Développement SQL Server Discussion :

Pivot table en sqlserver


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 62
    Points
    62
    Par défaut Pivot table en sqlserver
    Salut tous le monde;

    j'ai deux tables Table1 et Table 2; ( je travail avec sqlserver 2005)

    Table 1:

    Champ1 ---- Champ2---- champ3
    10----------aaa----14
    10----------bbb-----15
    10-----------ccc----13
    Table2
    champ1-------champ4--------champ5
    10-------------mlm--------------1000
    10--------------xcv--------------1200
    Je cherche avoir le résultat suivant:
    champ1 ------ aaaa------bbb-----cccc------mlm------xcv
    10--------------14---------15------13--------1000-----1200

    j'ai fait la moitiè à l'aide de pivot table :
    champ1 ------ aaaa------bbb-----cccc
    10--------------14---------15------13-

    mais je ne sais pas comment ajouter les deux colonnes mlm et xcv

    aidez moi merci.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Je vous conseille de mettre votre premier résultat dans une sous-requête Pivot1, de faire la même sous-requête sur table2 dans une sous-requête Pivot2, puis faite un select sur ces deux sous-requêtes.
    Ca donnerait quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    WITH Pivot1 AS (
        SELECT Champ1
        FROM Table1
        PIVOT (max(Champ3)
          FOR Champ2 IN ('aaa', 'bbb', 'ccc')) as PivotTable1),
         Pivot2 AS (
        SELECT Champ1
        FROM Table2
        PIVOT (max(Champ5)
          FOR Champ4 IN ('mlm', 'xcv')) as PivotTable2)
    SELECT * FROM Pivot1 JOIN Pivot2 ON Pivot1.Champ1 = Pivot2.Champ1 -- a vous de voir la nature du join ici, si c'est un full outer, un left...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 62
    Points
    62
    Par défaut
    Merci infiniment Waldar;
    ça marche merci encore chokran.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/02/2006, 21h31
  2. ACCES + Tables liées SQLServer 2000
    Par zakori dans le forum Access
    Réponses: 2
    Dernier message: 25/01/2006, 08h19
  3. [debutante] Pivot table Range
    Par nawel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/11/2005, 14h04
  4. Réponses: 2
    Dernier message: 28/10/2005, 10h28
  5. OWC, Pivot table, AddCalculatedField et MDX
    Par Immobilis dans le forum ASP
    Réponses: 2
    Dernier message: 25/10/2005, 22h12

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