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 :

faire l'addition de différentes tables


Sujet :

Requêtes MySQL

  1. #1
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut faire l'addition de différentes tables
    désolé, je n'ai pas trop de chose à vous proposé mis à part mes tables en pièce
    jointe. J'ai l'impression qu'il manque des champs ...

    J'aimerai faire le count(*) de chacun des victoires, nul, défaites pour chaque équipe. Ça a l'air tout simple comme ça, mais j'aimerai rajouter cette requête en sous requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT rencontres.num_rencontre,date_format(rencontres.date_rencontre,'%d/%m/%Y') as date, rencontres.categorie_rencontre,rencontres. lieu_rencontre,rencontres.distance_rencontre,rencontres.fonction_rencontre,rencontres.nom_locaux_rencontre,rencontres.nom_visiteurs_rencontre, collaborateurs.nom_central_collaborateur, rencontres.niveau_rencontre,rencontres.tour_rencontre,conseil.link_conseil,rapports.link_rapport,controles.link_controle,buts.but_local,buts.but_visiteur,prolongations.num_rencontre as prolongations,tab.tab_local,tab.tab_visiteur,result.local_result,result.visiteur_result
    					FROM `rencontres` 
    					LEFT JOIN collaborateurs ON rencontres.num_rencontre = collaborateurs.num_rencontre_collaborateur
    					LEFT JOIN conseil ON rencontres.num_rencontre = conseil.num_rencontre
    					LEFT JOIN controles ON rencontres.num_rencontre = controles.num_rencontre
    					LEFT JOIN result ON  rencontres.num_rencontre = result.num_rencontre_result
    					LEFT JOIN rapports ON rencontres.num_rencontre = rapports.num_rencontre
    					LEFT JOIN buts ON rencontres.num_rencontre = buts.num_rencontre
    					LEFT JOIN prolongations ON rencontres.num_rencontre = prolongations.num_rencontre
    					LEFT JOIN tab ON rencontres.num_rencontre = tab.num_rencontre
    					WHERE 1=1 //+ [plein de conditions]
    j'ai bien essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    SELECT COUNT(*) 
     
    FROM(
    SELECT rencontres.num_rencontre,date_format(rencontres.date_rencontre,'%d/%m/%Y') as date, rencontres.categorie_rencontre,rencontres. lieu_rencontre,rencontres.distance_rencontre,rencontres.fonction_rencontre,rencontres.nom_locaux_rencontre,rencontres.nom_visiteurs_rencontre, collaborateurs.nom_central_collaborateur, rencontres.niveau_rencontre,rencontres.tour_rencontre,conseil.link_conseil,rapports.link_rapport,controles.link_controle,buts.but_local,buts.but_visiteur,prolongations.num_rencontre as prolongations,tab.tab_local,tab.tab_visiteur,result.local_result,result.visiteur_result 
    FROM `rencontres` 
     
    LEFT JOIN collaborateurs ON rencontres.num_rencontre = collaborateurs.num_rencontre_collaborateur 
    LEFT JOIN conseil ON rencontres.num_rencontre = conseil.num_rencontre 
    LEFT JOIN controles ON rencontres.num_rencontre = controles.num_rencontre 
    LEFT JOIN result ON rencontres.num_rencontre = result.num_rencontre_result 
    LEFT JOIN rapports ON rencontres.num_rencontre = rapports.num_rencontre 
    LEFT JOIN buts ON rencontres.num_rencontre = buts.num_rencontre 
    LEFT JOIN prolongations ON rencontres.num_rencontre = prolongations.num_rencontre 
    LEFT JOIN tab ON rencontres.num_rencontre = tab.num_rencontre 
     
    WHERE 1=1 
    AND (rencontres.num_locaux_rencontre like "514935" OR rencontres.num_visiteurs_rencontre like "514935" ) 
    AND rencontres.date_rencontre < CURDATE() 
    AND rencontres.disputer_rencontre like "oui" 
    order by rencontres.date_rencontre
     
    ) as bidouille
     
    WHERE (local_result = "victoire" or visiteur_result = "victoire")
    mais il me sort la somme des rencontres de la sous-requete et non pas les victoires ..

    Merci pour votre aide ...
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Je te donne le principe à utiliser : additionner des 1 en fonction d'un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SELECT r.rencontres.nom_locaux_rencontre,
        SUM (
            CASE 
                WHEN b.but_local > b.but_visiteur THEN 1
                ELSE 0
            END
        ) AS nb_victoires,
        SUM (
            CASE 
                WHEN b.but_local < b.but_visiteur THEN 1
                ELSE 0
            END
        ) AS nb_defaites,
        SUM (
            CASE 
                WHEN b.but_local = b.but_visiteur THEN 1
                ELSE 0
            END
        ) AS nb_nuls
    FROM rencontres r
    LEFT JOIN buts b ON r.num_rencontre = b.num_rencontre
    GROUP BY r.rencontres.nom_locaux_rencontre
    Il n'y a ci-dessus que les équipes locales. Pour avoir les matches retour, il faut la même requête inversée ou peut-être faire une auto-jointure de la table rencontre (pas le temps d'y réfléchir davantage).
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Merci j'ai réussi à faire ce que je voulais grâce à toi. Bon je l'ai fait en php, car je suis plus à l'aise avec cette façon de programmer, mais bon tu m'as largement inspiré. Je dois encore intégrer les tirs au buts, mais bon le plus dur est fait.
    En plus, ça m'a permis de virer une table inutile.

    a plus
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 10/07/2011, 18h49
  2. Réponses: 7
    Dernier message: 02/09/2010, 03h57
  3. critere de selection pr faire un UPDATE sur 1 table
    Par maxizoo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 05/01/2006, 16h35
  4. Faire un Lock sur une table pendant l'exec d'un DTS
    Par Pete dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/03/2005, 15h17
  5. Faire une addition en asp
    Par PrinceMaster77 dans le forum ASP
    Réponses: 9
    Dernier message: 29/11/2004, 16h25

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