Php/requete

daikidan Messages postés 18 Statut Membre -  
daikidan Messages postés 18 Statut Membre -
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
A voir également:

3 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 758
 
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 18 Statut Membre
 
merci Jordane jvais tester
0
daikidan Messages postés 18 Statut Membre
 
jai fais une mise a jour de mon poste, jpense quil est plus clair maintnt
0
[TiDi] Messages postés 140 Statut Membre 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
daikidan Messages postés 18 Statut Membre
 
Merci quand meme
0
kodatrololo Messages postés 455 Date d'inscription   Statut Membre Dernière intervention   129
 
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 18 Statut Membre
 
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 18 Statut Membre
 
jai fais une mise a jour de mon poste, jpense quil est plus clair maintnt !
0
kodatrololo Messages postés 455 Date d'inscription   Statut Membre Dernière intervention   129
 
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 18 Statut Membre
 
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