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 :

Conseil pour somme sur union


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut Conseil pour somme sur union
    bonjour j'ai deux tables :

    ------------------------------------
    GenreDisk--numGenre--PrixMoyen----
    ------------------------------------
    rock-----------1---------5.25-------
    blues----------2---------4.80-------

    et la seconde

    GenreDisk--Etat1--etat2-etat3--
    rock--------2-------3------0---
    blues-------0-------2------3---

    j'ai fait une union des deux requetes pour avoir tous les renseignement dans une meme requete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT GenreDisk, numGenre,PrixMoyen, 0 as Etat1, 0 as Etat2, 0 as Etat3
    FROM table1
    group by genreDisk
     
    UNION
     
    SELECT GenreDisk, 0 AS numGenre,0 AS PrixMoyen, Etat1, Etat2,Etat3
    FROM table2
    group by genreDisk
    Mais ça m'affiche toujours 0 dans les états.
    j'ai donc fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT t3.nomGenre,t3. prixMoyen, sum(etat1), sum(etat2), sum(etat3) 
    FROM
     
    (SELECT GenreDisk, numGenre,PrixMoyen, 0 as Etat1, 0 as Etat2, 0 as Etat3
    FROM table1
    group by genreDisk
     
    UNION
     
    SELECT GenreDisk, 0 AS numGenre,0 AS PrixMoyen, Etat1, Etat2,Etat3
    FROM table1
    group by genreDisk)
      as T3
    group by genreDisk
    mais je trouve que ça fait une grosse requête ! n'y a t-il pas un moyen plus simple ?

    merci....

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    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 091
    Points : 30 870
    Points
    30 870
    Par défaut
    Citation Envoyé par maysa
    je trouve que ça fait une grosse requête ! n'y a t-il pas un moyen plus simple ?
    Peut, être en faisant une jointure ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT     T1.GenreDisk, T1.numGenre, T1.PrixMoyen, T2.Etat1, T2.Etat2, T2.Etat3
    FROM    table1    as T1
        INNER JOIN
            table2    as T2
            ON    T1.GenreDisk = T2.GenreDisk
    ;
    Je n'ai pas bien compris à quoi te servait le GROUP BY puisque tu n'utilises aucune fonction d'agrégation...
    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 actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Si si j'ai des agrégation pour trouver la premiere et la seconde table....
    je vais essayer comme ça

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/09/2010, 13h20
  2. Conseil pour "coder" sur un forum php
    Par chtitaz dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 20/08/2010, 00h03
  3. Réponses: 1
    Dernier message: 06/07/2010, 16h11
  4. Conseils pour développer sur Penbex
    Par saluCseb dans le forum Linux
    Réponses: 4
    Dernier message: 23/03/2010, 09h59
  5. [Mobile] Petit conseil pour programmer sur un Nokia N70
    Par GarulfoLinux dans le forum Mobiles
    Réponses: 8
    Dernier message: 09/03/2007, 11h41

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