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 :

[MySQL 4.0.15] Jointure complexe


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Par défaut [MySQL 4.0.15] Jointure complexe
    Bonjour à Tous,

    Voilà je dispose de 3 tables.

    une table Pseudo (tous les pseudos):
    idemploye
    nom
    pseudo (pseudo des employés)

    une table Consultations (une seule consultation par pseudo):
    idconsult
    pseudo (nom des employés)
    montantHT

    une table Consultations2 (plusieurs consultations par pseudo):
    idconsult2
    pseudo
    heurepresence
    heuregenere
    montantHT

    Il faut savoir que la table Pseudo contient le nom de tous les employés.
    Que certains employés sont sur Consultations et Consultations2, d'autres sur une seule des deux tables.

    Je veux avoir toutes les données des tables Consultations et Consultations2 par pseudo de la table Pseudo. Sachant que je dois regrouper les infos de la table Consultations2 par pseudo. Je sais que pour regrouper les infos de la table Consultations2 je fais la requête suivante:

    (SELECT pseudo,SUM(montantHT) AS montTot FROM consultations2 GROUP BY pseudo)


    Pour obtenir toutes les infos des tables sans avoir le regroupage je fais la requête suivante:

    SELECT * FROM pseudo LEFT JOIN consultations2 ON pseudo.pseudo = consultations2.pseudo LEFT JOIN consultations ON pseudo.pseudo = consultations.pseudo ORDER BY consultations2.date

    Mais là je n'ai pas la somme des consultations de chaque employé.


    Comment faire pour avoir le tout ?

    Merci par avance.

    Carter.

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT   p.pseudo, COALESCE(SUM(c2.MontantHT, 0)) + COALESCE(c.MontantHT, 0)
    FROM     pseudo p LEFT JOIN consultations2 c2 ON p.pseudo = c2.pseudo 
                      LEFT JOIN consultations  c  ON p.pseudo = c.pseudo 
    GROUP BY p.pseudo
    Attention, cecei ne peut marcher que parce que pseudo est unique dans Consultation.

    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT p.pseudo, COALESCE(SUM(MontantHT), 0)
    FROM Pseudo p LEFT JOIN (SELECT pseudo, MontantHT 
                             FROM   consultations2
                            UNION ALL
                             SELECT pseudo, MontantHT
                             FROM   consultations) a ON p.pseudo = a.pseudo
    GROUP BY pseudo

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Par défaut
    Il y aurait un erreur de syntaxe dans la requête près de :
    'SELECT pseudo, montantvoyantHT
    FROM consultationsaudio
    UNION A

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Quel SGBD, quelle version ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Par défaut
    J'utilise Mysql version 4.0.15 sur EasyPhp.

Discussions similaires

  1. [MySQL] Conception de deux requêtes complexes
    Par Vesta dans le forum Langage SQL
    Réponses: 20
    Dernier message: 24/07/2007, 17h53
  2. [MySQL] concaténation pour un tranfert complexe
    Par zertyu333 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/09/2006, 22h46
  3. Requête : Jointure Complexe
    Par xwawa dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/03/2006, 10h10
  4. Auto jointure complexe
    Par ricobye dans le forum Langage SQL
    Réponses: 11
    Dernier message: 19/01/2006, 16h02
  5. Réponses: 14
    Dernier message: 17/03/2003, 18h31

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