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

Langage SQL Discussion :

Union requete = tableau Croisé


Sujet :

Langage SQL

  1. #1
    Membre actif
    Homme Profil pro
    Chef de produit
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de produit

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Points : 246
    Points
    246
    Par défaut Union requete = tableau Croisé
    Bonjour à tous

    J'ai la table suivante
    MaTable1(#Annees, phase, Somme)

    Annees_____phase_____Somme
    1__________Type1_____21
    2__________Type2_____54
    2__________Type1_____5

    3__________Type2_____4
    3__________Type1_____4

    4__________Type1_____7
    5__________Type2_____8
    6__________Type2_____9

    donc dans la rubrique phase J'ai deux type (Type1 et Type2)

    et je veux avoir le résultat sous la forme suivante:

    annees___Type1____Type2
    1________21________0
    2________5________54
    3________4________4

    4________7________0
    5________0________8
    6________0________9

    J'ai essayé de faire des union entre deux requete ca marche pas
    le résultat c'est comme un tableau croisé
    voila requête que j'ai fait
    SELECT annees, phase, somme
    FROM Matable1
    WHERE phase='Type1'
    GROUP BY annees, phase
    UNION
    SELECT annees, phase, somme
    FROM Matable1
    WHERE phase='type2'
    GROUP BY annees, phase

    MERCI pour votre Aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 084
    Points : 30 833
    Points
    30 833
    Par défaut
    ça ressemble très fort à cette question
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    Tu ne pourras pas t'en sortir avec un UNION, mais à mon avis en instançiant 2 fois ta table, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT A.Annees, A.Somme Type1, B.Somme Type2
    FROM MaTable1 A FULL OUTER JOIN MaTable2 B ON A.Annees = B.Annees
    WHERE A.phase = 'Type1'
    AND B.phase = 'Type2'
    Pour avoir un 0 au lieu du null lorsque la somme n'est pas renseigné, il faut que tu utilises une fonction qui est spécifique à chaque SGBD (NVL() sous Oracle par exemple).
    Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Points : 95
    Points
    95
    Par défaut
    Une grosse bidouille qui marche


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT distinct  t.annees,(
    SELECT t1.somme 
    FROM MaTable1 t1
    WHERE phase='Type1'
    AND t1.annees=t.annees
    ) AS 'Type1',(
    SELECT t2.somme 
    FROM MaTable1 t2
    WHERE phase='Type2'
    AND t2.annees=t.annees
    ) AS 'Type2'
    FROM MaTable1 t

    J'avoue c'est assez barbare !!
    Eu gosto de trabalhar porque trabalhar faz bem,
    mas gosto mais de descanso que nao faz mal a ninguem

  5. #5
    Membre actif
    Homme Profil pro
    Chef de produit
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de produit

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Points : 246
    Points
    246
    Par défaut
    MERCI pour vos réponses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT A.Annees, A.Somme Type1, B.Somme Type2
    FROM MaTable1 A FULL OUTER JOIN MaTable2 B ON A.Annees = B.Annees
    WHERE A.phase = 'Type1'
    AND B.phase = 'Type2'
    c'est presque ce que je veux,
    mais ca me donne juste ça

    2________5________54
    3________4________4
    et moi je veux tout les années qui affichent
    annees___Type1____Type2
    1________21________0
    2________5________54
    3________4________4
    4________7________0
    5________0________8
    6________0________9

    en fait pour avoir SUM des deux Type1 ou de Type2, je dois appliquer SUM sur les deux types
    par exemple:
    annee______phase_____somme
    2__________Type2_____54
    2__________Type1_____5
    2__________Type1_____4

    Je dois avoir il faut que je somme :
    annees___Type1____Type2
    2________(5+4)________54

    MERCI pour votre aide

Discussions similaires

  1. Tableau croisé dynamique sur requete SQL
    Par Djohn dans le forum Excel
    Réponses: 11
    Dernier message: 29/05/2008, 16h02
  2. [CR] comment faire un tableau croisé
    Par yoyothebest dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 29/08/2004, 18h32
  3. Réponses: 2
    Dernier message: 26/07/2004, 18h08
  4. Réponses: 3
    Dernier message: 26/07/2004, 12h03
  5. [CR9] Colorier les cellules d'un tableau croisé
    Par Koko22 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2003, 16h57

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