Php/requete

daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
bonjour j'ai besoin de votre aide !!!

jai trois tables dans ma base : medicalQuiz, marketingQuiz et trainning

dont medicalQuiz et marketingQui ont exactement la même structure

medicalQuiz:
id - idCandidat - Score
1 - 5 - 7
2 - 2 - 8
3 - 3 - 2
4 - 1 - 1 (par exemple)

marketingQuiz:
id - idCandidat - Score
1 - 5 - 3
2 - 2 - 5
3 - 3 - 1
4 - 1 - 6 (par exemple)

trainningQuiz:
id - idCandidat - Score
1 - 5 - 5
2 - 2 - 10
3 - 3 - 8
4 - 1 - 2 (par exemple)

mon probleme est le suivant :

je souhaite récupérer le score maximal des trois tables , les additionner puis diviser le resultat par trois

dans notre cas ca doit donner : (8 + 6 + 10)/3

aider moi svp . merci

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Je n'ai pas testé ... mais quelque chose de ce genre pourrait correspondre à tes besoins
    SELECT  Tresult.idCandidat
          , AVG(Tresult.MScore_T1,Tresult.MScore_T2,Tresult.MAvg) as RESULTAT_MOYENNE
    FROM (
         (SELECT idCandidat,MAX(Score) as MScore_T1
          FROM medicalQuiz
          GROUP BY idCandidat)T1
         UNION
         (SELECT idCandidat,MAX(Score) as MScore_T2
          FROM marketingQuiz
          GROUP BY idCandidat)T2
         UNION
         (SELECT idCandidat,MAX(AVG(Score)) as MAvg
          FROM marketingQuiz
          GROUP BY idCandidat)T3
        )Tresult
    GROUP BY Tresult.idCandidat
    ORDER BY RESULTAT_MOYENNE DESC
    


    Cordialement,
    Jordane
    1
    1. daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      merci Jordane jvais tester
      0
    2. daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      jai fais une mise a jour de mon poste, jpense quil est plus clair maintnt
      0
  2. [TiDi] Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   262
     
    Je ne peux pas t'aider précisément car ça fait très longtemps que je n'ai pas touché au PHP mais pour la valeur max et la moyenne va voir du côté de MySQL, il me semble que tu peux faire des calculs directement dans les requêtes sinon, tu récupères toutes les valeurs et tu calcules tout en PHP
    0
    1. daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci quand meme
      0
  3. kodatrololo Messages postés 455 Date d'inscription   Statut Membre Dernière intervention   131
     
    Bonjour,

    Je comprends pas bien ce vous voulez faire.
    Vous parlez des "meilleurs score", mais quel est le critère de selection des meilleurs score
    Ensuite la meilleur moyenne de la table training qui va être additionnez aux meilleurs score pour a nouveau faire un moyenne et trouver le meilleur candidat ?

    C'est très confus.

    Avec ce que je comprends, vous cherchez à faire quelque chose comme ça:
    Select T.candidat, sum(T.note, KQ.Score, DQ.score)/3 as result  from trainning T inner join marketingQuiz KQ on T.candidat=KQ.idCandidat inner join medicalQuiz DQ on DQ.idCandidat=KQ.idCandidat order by sum(T.note, KQ.Score, DQ.score) desc limit 1


    Cdlmnt,
    0
    1. daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      je suis désolé pour mon mank d precision , mais cke vou avez mavance enormement n serai cke par la synthax ...

      jvais de ce pa donner plus de precision ..... encore pardon
      0
    2. daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      jai fais une mise a jour de mon poste, jpense quil est plus clair maintnt !
      0
    3. kodatrololo Messages postés 455 Date d'inscription   Statut Membre Dernière intervention   131
       
      Effectivement !

      Par contre ce que je ne comprends pas bien, c'est pourquoi vous voulez mélanger les notes de plusieurs idCandidat différent. Car votre moyenne là "(8 + 6 + 10)/3" c'est la moyenne des candidat respectivement 2, 1 et 2.
      Donc vous voulez juste faire la moyenne des meilleurs notes sans distinction entre les candidats, et non de trouver le candidat qui à la meilleur moyenne sur base des 3 catégories confondus ?

      Cdlmnt,
      0
    4. daikidan Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      Cest un jeu a 22 candidats qui doivent jouer a trois quiz de 10 questions notées sur 10 , moi jveux juste trouver celui ki eu le meilleur score ,

      et dans mon exemple plus haut , cest le cas de 4 candidats
      0