Modérateur PHPfrance |
2575 Messages
27 sept. 2005, 14:03
Select avisot.Commentaire, Count(registre.Avisot)
From avisot, registre
Group by registre.numdossier
Cette requête est fausse car le lien entre les 2 tables utilisées est absent.
il faut ajouter un
WHERE avoisot.Commentatire=registre.Commentaire si la clé primaire de registre est le champ "Commentaire"
On fait on n'a pas suffisament d'info sur la strucure relationnelle de tes tables. Mais je vais essayé de t'aider par l'exemple:
Soit les 2 tables :
Jeu (id, nom)
Scrore (date, points, joueur, id_jeu)
On comprend qu'il s'agit d'un jeu joué par des joueurs dans le temps
Chaque joueur réalise un score l'ors d'un jeu dans une date donnée
Requêtage:
Pour calculer le nombre de fois qu'un même jeu a été joué, on écrit:
R1:
Code : Tout sélectionner
SELECT nom, Count(id_jeu) AS nombre_de_fois_joué
FROM Jeu, Score
WHERE Jeu.id = Score.id_jeu
GROUP BY nom
Pour calculer le pourcentage de fréquentation d'un jeu par rapport aux autres jeux, on a besoin en plus du résultat précédent de R1 de compter le nombre total de jeux enregistrés par les joueurs, ceci s'écrit:
R2
Et maintenant, il suffit de diviser le résultat de R1 par celui de R2 pour obtenir le % de fréquentation d'un jeu, ceci s'écrit:
R3:
Code : Tout sélectionner
SELECT (nombre_de_fois_joué / nombre_total_de_jeux)*100 as fréquence
FROM
(SELECT nom, Count(id_jeu) AS nombre_de_fois_joué
FROM Jeu, Score
WHERE Jeu.id = Score.id_jeu
GROUP BY nom) AS R1,
(SELECT Count(id_jeu) as nombre_total_de_jeux FROM Score) AS R2
En fait on a réexploité la première requête R1 et la combiné avec la requête R2 dans le cadre d'une requête globale.
Attention : ce genre de requêtes imbriquées est supporté à partir de MYSQL 4.1 et +
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène