Statistiques saison de hockey [Complément] - SQL/NoSQL - Programmation
Marsh Posté le 31-03-2005 à 17:04:13
Concentre toi sur un problème à la fois.
Les pénalités pour commencer ...
Donnes-nous le contenu de la table des joueurs et celui de la table des pénalités, et le résultat de la requête suivante :
Code :
|
Marsh Posté le 31-03-2005 à 19:15:59
Code :
|
Si jamais tu dois utiliser une version de MySQL < 4.1, alors ils faut passer par des TEMPORARY TABLE (ça marche très bien ).
Dis moi si la requete passe (je peux pas tester mais ça doit être ça, aux erreurs de syntaxe près )
Marsh Posté le 31-03-2005 à 19:19:23
merci pour toutes ces réponses je vais tester ça ce soir ! Merci infiniment !
Marsh Posté le 31-03-2005 à 19:59:48
Merci infiniment à vous tous !
La query finale est celle-ci :
Code :
|
y avait juste les Jou.Jou_IDE = xxx.Jou_IDE qui jouaient pas. Mais sinon impec !
C'est la fête
Marsh Posté le 01-04-2005 à 10:02:54
http://www.fabforce.net/dbdesigner4/
+ les liaisons à la main sous paint... lol (mais c parceque j'ai conçu la base à la main et que j'ai simplement importé par la suite dans DBDesigner en faisant un reverse engineering depuis la base mysql, sinon on peut tout faire avec ce programme.)
Marsh Posté le 01-04-2005 à 12:23:13
Bon c'est pas tout à fait résolu encore en fait Et à nouveau je coince...
Dans la query finale on utilise pour les statistiques tous les éléments de la base hors ce que je désire faire c'est utiliser uniquement les informations concernant les matchs s'étant déroulés durant la saison ayant un ID = x.
Dans la requête de ratibus (le sauveur) on fait des LEFT JOIN sur la table joueurs afin d'obtenir les différents éléments statistiques que je désire afficher.
Quelle syntaxe adopter pour limiter le groupe de résultats aux matchs s'étant disputé durant une saison ayant pour id = n.
C'est terrible pour moi ce SQL, je vois les intersections d'ensembles dans ma tête mais je n'arrive pas à les retranscrire en SQL. Va falloir que je me trouve un bon bouquin
Marsh Posté le 01-04-2005 à 13:28:50
CHli a écrit : Bon c'est pas tout à fait résolu encore en fait |
Tu veux toujours tous les joueurs ?
Marsh Posté le 01-04-2005 à 15:48:21
Code :
|
Marsh Posté le 02-04-2005 à 01:25:51
Je vais m'entrainer... mais une fois la requête formulée je comprend tout à fait son fonctionnement. Encore merci.
Marsh Posté le 30-03-2005 à 11:26:39
Bonjour et tout d'abord merci à tout ceux qui auraient décidés de m'aider

Je suis entrain de créer quelques pages en PHP et quelques requêtes pour aider un ami et j'avoue que mes connaissances en SQL sont plutôt limitées.
Voilà le schéma de la base :
et voilà à quoi j'aimerais arriver en une seule requête :
http://www.bruleglace.com/stats/index.php3
(Pour chaque joueur, le nombre de matchs auquel il a participé, le nombre de buts qu'il a marqué, le nombre d'assists qu'il a fait et le nombre de minutes de pénalités qu'il a eu tout ça en une saison)
J'ai fait un LEFT OUTER JOIN pour avoir au moins une fois chaque joueur, j'arrive à avoir le nombre de match auquel à participé un joueur, mais après ça coince. Voilà ma requête (incorrect) :
SELECT J.Jou_Nom, J.Jou_Prenom, J.Jou_Numero, COUNT(NM.Jou_IDE) as NB_Matchs, COUNT(B.Jou_IDE) as NB_Buts, SUM(P.Pen_Duree) as NBPenalites FROM (((joueurs as J LEFT OUTER JOIN nm_matchsjoueurs as NM ON J.Jou_ID = NM.Jou_IDE) LEFT OUTER JOIN buts as B ON J.Jou_ID = B.Jou_IDE) LEFT OUTER JOIN penalites as P ON J.Jou_ID = P.Jou_IDE) GROUP BY J.Jou_ID ORDER BY J.Jou_Nom.
Ce qui me retourne :
Hors il n'y a qu'une seule pénalité de 15 minutes et non pas 2 pour "Von Allmen Nils". (mais ce n'est pas le seul problème)
Vous pouvez consulter/modifier la base à l'aide de l'interface (Firefox only) [... problème résolu ... supprimé pour des raisons de sécurité]
(data base sauvegardée vous pouvez y aller lol)
Vous pouvez essaier vos requêtes sur :
[... problème résolu ... supprimé pour des raisons de sécurité]
Merci infiniment à tout ceux qui pourront m'apporter des éléments de réponses.
Message édité par CHli le 08-04-2005 à 11:08:55