Vous êtes sur la page 1sur 2

create database Exo3ser2

USE Exo3ser2
CREATE TABLE EQUIPE (CodeEquipe INT PRIMARY KEY , NomEquipe VARCHAR(20), Directe
urSportif VARCHAR(20))
CREATE TABLE PAYS (CodePays INT PRIMARY KEY , NomPays VARCHAR(20))
CREATE TABLE COUREUR (NumroCoureur INT PRIMARY KEY, NomCoureur VARCHAR(20), Code
Equipe INT foreign key references EQUIPE (CodeEquipe), CodePays int foreign key
references PAYS (CodePays) )
CREATE TABLE TYPE_ETAPE (CodeType INT PRIMARY KEY, LibellType VARCHAR(20))
CREATE TABLE ETAPE (NumroEtape INT PRIMARY KEY , DateEtape DATE , VilleDp VARCHAR
(20), VilleArr varchar(20), NbKm int, CodeType int foreign key references TYPE_E
TAPE (CodeType) )
CREATE TABLE PARTICIPER (NumroCoureur int primary key , NumroEtape int foreign ke
y references ETAPE (NumroEtape) , TempsRalis int)
CREATE TABLE ATTRIBUER_BONIFICATION (NumroEtape int foreign key references ETAPE
(NumroEtape), km int , Rang varchar(20), NbSecondes INT, NumroCoureur int foreign
key references PARTICIPER (NumroCoureur))
INSERT INTO PAYS VALUES (2000, 'NomPays1'),(2001, 'NomPays2'),(2002, 'NomPays3')
,(2003, 'NomPays4')
INSERT INTO EQUIPE VALUES (300, 'NomEquipe1', 'DirecteurSportif1')(300, 'NomEqui
pe1', 'DirecteurSportif1'), (301, 'NomEquipe2', 'DirecteurSportif2'),
(302, 'NomEquipe3', 'Directeur
Sportif3'),(303, 'NomEquipe4', 'DirecteurSportif4')
INSERT INTO COUREUR VALUES(80, 'NomCoureur1', 301, 2000),(81, 'NomCoureur2', 301
, 2002),(82, 'NomCoureur2', 301, 2003),(83, 'NomCoureur3', 301, 2000),
(84, 'NomCoureur4', 301,
2003),(85, 'NomCoureur5', 301, 2001)
insert into TYPE_ETAPE values (100, 'LIBELLET1' ),(101, 'LIBELLET2' ),(102, 'LIB
ELLET3' ),(1 03, 'LIBELLET4' ),
(104, 'LIBELLET5' ),(105
, 'LIBELLET6' ),(106, 'LIBELLET7' ),(107, 'LIBELLET8' )
insert into ETAPE VALUES (10, '2010/02/23', 'VilleDp1', 'VilleArr1', 13, 100),(11
, '2010/02/23', 'VilleDp2', 'VilleArr2', 543, 104),
(12, '2010/02/23', 'VilleDp3', '
VilleArr3', 123, 100),(13, '2010/02/23', 'VilleDp4', 'VilleArr4', 145, 103)
insert into PARTICIPER VALUES (200, 11, 34),(201, 11, 3324),(202, 13, 334),(203
, 13, 4),(204, 12, 12),(205, 10, 454),(206, 10, 44),(207, 10, 23)
insert into ATTRIBUER_BONIFICATION VALUES (12, 21, 'Rang1', 13213, 200),(11, 21,
'Rang2', 13, 202),(12, 21, 'Rang3', 1313, 203),
(12, 21, 'Rang4', 198, 204),(12, 21, 'Ran5', 16783, 205),(12, 21, 'Rang6', 56
13, 206)
SELECT NumroCoureur, NomCoureur, NomPays
FROM EQUIPE A INNER JOIN COUREUR B ON A.CodeEquipe=B.CodeEquipe
INNER JOIN PAYS C ON B.CodePays=C.CodePays
WHERE NomEquipe='NomEquipe1'

SELECT SUM(Nbkm) FROM ETAPE

SELECT SUM(Nbkm)
FROM ETAPE A INNER JOIN TYPE_ETAPE B ON A.CodeType=B.CodeType

WHERE LibellType='HAUTE MONTAGNE'


SELECT NomCoureur
FROM COUREUR
WHERE NumroCoureur NOT IN (SELECT NumroCoureur FROM ATTRIBUER_BONIFICATION)
/*SELECT NomCoureur
FROM COUREUR C LEFT JOIN ATTRIBUER_BONIFICATION A ON C.NumroCoureur=A.NumroCoureur
WHERE A.NumroCoureur IS NULL */
SELECT NomCoureur
FROM PARTICIPER A INNER JOIN COUREUR B ON A.NumroCoureur=B.NumroCoureur
GROUP BY NomCoureur
HAVING COUNT(*)=(SELECT COUNT(*) FROM ETAPE)
SELECT NomCoureur, CodeEquipe, CodePays, SUM(TempsRalis) AS Total
FROM PARTICIPER A INNER JOIN COUREUR B ON A.NumroCoureur=B.NumroCoureur
WHERE NumroEtape<=13 AND A.NumroCoureur IN
(SELECT NumroCoureur FROM PARTICIPER WHERE NumroEtape=13)
GROUP BY A.NumroCoureur, NomCoureur, CodeEquipe, CodePays ORDER BY 4

Vous aimerez peut-être aussi