Php/requete

Fermé
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017 - Modifié par daikidan le 10/08/2015 à 14:31
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017 - 10 août 2015 à 16:29
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

jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 4 657
Modifié par jordane45 le 11/08/2015 à 02:35
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
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017
10 août 2015 à 14:32
merci Jordane jvais tester
0
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017
10 août 2015 à 14:51
jai fais une mise a jour de mon poste, jpense quil est plus clair maintnt
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
10 août 2015 à 13:53
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
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017
10 août 2015 à 14:00
Merci quand meme
0
kodatrololo Messages postés 446 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 30 décembre 2015 129
Modifié par kodatrololo le 10/08/2015 à 14:14
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
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017
10 août 2015 à 14:20
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
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017
10 août 2015 à 14:51
jai fais une mise a jour de mon poste, jpense quil est plus clair maintnt !
0
kodatrololo Messages postés 446 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 30 décembre 2015 129
10 août 2015 à 16:17
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
daikidan Messages postés 15 Date d'inscription lundi 10 août 2015 Statut Membre Dernière intervention 9 octobre 2017
Modifié par daikidan le 10/08/2015 à 16:30
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