Précédent   Forum du club des développeurs et IT Pro > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2012, 18h05   #1
snals
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2012
Messages : 6
Points : 0
Points : 0
Par défaut Classement des équipes

bonjour,
comment faire pour que le classement des équipes contienne seulement les matchs joués (terminés)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
SELECT equipe ,
SUM(matchs_joues)AS matchs_joues,
SUM(matchs_gagnes)AS matchs_gagnes,
SUM(matchs_nuls)AS matchs_nuls,
SUM(matchs_perdus)AS matchs_perdus,
SUM(goals_for)AS goals_for,
SUM(goals_against)AS goals_against,
SUM(diff)AS  diff ,
SUM(t.points) AS points FROM   
(  
SELECT  home_team AS equipe,
	SUM(CASE 
   WHEN sc1=' ' THEN 0 ELSE 1
 	END) AS matchs_joues, 
  	SUM(CASE 
   WHEN sc1 > sc2 THEN 1 ELSE 0 
 	END) AS matchs_gagnes, 
 	SUM(CASE 
   WHEN sc1=' ' OR sc2=' '  THEN 0 ELSE 1 
 	END) AS matchs_nuls, 
 	SUM(CASE 
   WHEN sc1 < sc2 THEN 1 ELSE 0 
 	END) AS matchs_perdus 	,
 SUM (CASE  
 when sc1=' ' then ' '
 WHEN sc1 > sc2 THEN 3 
 WHEN sc1 = sc2 THEN 1 
 WHEN sc1 < sc2 THEN 0 
 END) points,
 SUM (sc1 - sc2) AS diff ,
 SUM(sc1)AS goals_for,
 SUM(sc2)AS goals_against
 
FROM MATCH2 
WHERE nom_pays=13
GROUP BY home_team 
 
UNION 
 
SELECT   away_team  AS equipe,
	SUM(CASE 
   WHEN sc2=' ' THEN 0 ELSE 1 
 	END) AS matchs_joues, 
 	  	SUM(CASE 
   WHEN sc2 > sc1 THEN 1 ELSE 0 
 	END) AS matchs_gagnes, 
 	SUM(CASE 
   WHEN sc2=' ' OR sc1=' '  THEN 0 ELSE 1 
 	END) AS matchs_nuls, 
 	SUM(CASE 
   WHEN sc2 < sc1 THEN 1 ELSE 0 
 	END) AS matchs_perdus 	,
 SUM (CASE  
 when sc2=' ' then ' '
 WHEN sc2> sc1 THEN 3 
 WHEN sc2= sc1  THEN 1 
 WHEN sc2 < sc1 THEN 0 
 END) points,
SUM (sc2 - sc1) AS diff ,
SUM(sc2)AS goals_for,
SUM(sc1)AS goals_against
FROM MATCH2
WHERE nom_pays=13
GROUP BY away_team
) t  
GROUP BY equipe   
ORDER BY points DESC, diff DESC
snals est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 08h19   #2
tatayo
Expert Confirmé
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 550
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 550
Points : 3 098
Points : 3 098
Bonjour,
Qu'est-ce qui permet de savoir qu'un match est terminé ?

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 15h19   #3
snals
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2012
Messages : 6
Points : 0
Points : 0
pour savoir si le match est terminé ou non, j'ai oublié d'ajouter dans la table match la date et le temps
c'est a dire quand le match terminé automatiquement les résultats ajouter au classement sinon le classement reste vide
voila la base de données
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CREATE DATABASE sport
USE sport
CREATE TABLE continent(
id int PRIMARY KEY identity ,
nom_content varchar(50)
)
CREATE TABLE pays2 (
id_pays int  PRIMARY KEY identity,
nom_pays varchar (50),
id_con int,
constraint id_con1 FOREIGN KEY (id_con) REFERENCES content(id)
)
CREATE TABLE team (
id_team int identity PRIMARY KEY  ,
nom_team varchar(50),
id_pa int, 
constraint id_p2 FOREIGN KEY (id_pa) REFERENCES pays2(id_pays)
)
CREATE TABLE  match2(
id_match int PRIMARY KEY identity ,
home_team varchar(50),
sc1 int  NULL DEFAULT '-',
sc2 int  NULL DEFAULT  '-',
away_team varchar(50),
nom_pays varchar(20),
)
snals est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 19h21   #4
tatayo
Expert Confirmé
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 550
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 550
Points : 3 098
Points : 3 098
Ma question portait sur les tables de ta base.
Quel critère sur quelle(s) rubrique(s) de quelle(s) table(s) permet de savoir qu'un match est terminé ?
Dit autrement: quelle requête te permettrait d'avoir les matchs terminés ?

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 20h28   #5
snals
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2012
Messages : 6
Points : 0
Points : 0
si le temps de début de match est +90'min, le match est terminé avec résultats
vide si aucun résultat n'a été ajouté
snals est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 10h12   #6
tatayo
Expert Confirmé
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 550
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 550
Points : 3 098
Points : 3 098
Donc tu considères qu'un match commencé depuis 90 minutes est terminé ?
Quid des prolongations, mi-temps et autre ?

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 10h54   #7
snals
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2012
Messages : 6
Points : 0
Points : 0
oui, tu as raison pour cette question.
donc le match va commencer 1 période après 45 minutes la mi-temps et il y a 15 minutes de pause et enfin il y a 45 minutes de la deuxième période et après le match est terminé donc il y a 105 minutes sans calculer les temps supplémentaires. Les résultats ajoutent automatiquement au classement

mais le problème, j'essaye de faire cette requête mais ça ne marche pas
comment faire la comparaison entre l'heure de début du match et l'heure du système ?
snals est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h51.


 
 
 
 
Partenaires

Hébergement Web