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

Requêtes MySQL Discussion :

Sum de plusieurs champs dans plusieurs tables


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1
    Par défaut Sum de plusieurs champs dans plusieurs tables
    3 tables (MySQL 4.0):

    RHEA_Users a
    pseudo(var)
    class(var)

    RHEA_Session b
    pseudo(var)
    point(int)
    pointloot1(int)
    pointloot2(int)
    pointloot3(int)
    pointloot4(int)
    pointloot5(int)
    pointloot6(int)

    RHEA_Ressources c
    pseudo(var)
    point(int)

    Je désire effectuer l'opération suivante:

    b.point-b.pointloot1-b.pointloot2-b.pointloot3-b.pointloot4-b.pointloot5-b.pointloot6+c.point


    La requete suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT a.pseudo, a.class,
    sum(b.point)-sum(b.pointloot1)-sum(b.pointloot2)-sum(b.pointloot3)
    -sum(b.pointloot4)-sum(b.pointloot5)-sum(b.pointloot6)+sum(c.point) as totalpoint
    FROM RHEA_Users a, RHEA_Session b, RHEA_Ressources c 
    WHERE a.pseudo=b.pseudo
    AND b.pseudo=c.pseudo
    GROUP BY a.pseudo
    ne m'affiche que les pseudos présents dans RHEA_Session ET RHEA_Ressources alors que je veux tous les pseudos de RHEA_Session

    Qqun aurait il une astuce ?
    MySQL 5.0 serait-il plus indiqué ?

  2. #2
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Dans ce cas il faut un 'LEFT JOIN' sur RHEA_Ressources (et peut-être aussi sur RHEA_Users si tous les pseudos n'y figurent pas).

    'c.point' pourra alors être NULL donc je pense qu'il faudra utiliser 'sum(IFNULL(c.point, 0))'


    Edit: Je viens de sortir une grosse bêtise
    Utiliser des JOIN fait un produit cartésien entre les différentes tables. 'sum(c.point)' par exemple vaudra la somme des c.point... multipliée par le nombre de RHEA_Users fois le nombre de RHEA_Sessions associés.

    J'ai peur qu'il faille utiliser des requêtes imbriquées (donc MySQL 5.0).

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

Discussions similaires

  1. [AC-2003] Problème de test sur plusieurs champs dans une table
    Par Cavart dans le forum Access
    Réponses: 1
    Dernier message: 23/11/2011, 14h51
  2. Requête a/ recherche dans plusieurs champs de la table
    Par 810mcu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/11/2007, 20h05
  3. Comparer 2 ou plusieurs champs dans 1 table access
    Par stefan13 dans le forum VBA Access
    Réponses: 9
    Dernier message: 30/07/2007, 13h42
  4. [SQL Server] rechercher dans plusieurs champs d'une table
    Par houla! dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/08/2006, 09h37
  5. Effacer plusieurs champs dans une table
    Par kurkaine dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/08/2006, 08h22

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