From e57988d454513fbe2ca676ddd3dacfa8deeee01c Mon Sep 17 00:00:00 2001 From: pascal Date: Tue, 9 Mar 2021 17:54:57 +0100 Subject: [PATCH] ok --- EXOS/Exam2020.tex | 8 +++--- EXOS/exo4-PL.sql | 70 ++++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/EXOS/Exam2020.tex b/EXOS/Exam2020.tex index a009f09..15bf1b9 100644 --- a/EXOS/Exam2020.tex +++ b/EXOS/Exam2020.tex @@ -565,7 +565,7 @@ Messages à prévoir : \item Le libellé doit être unique \item L’équipement a été enregistré : Libellé \end{itemize} -% \lstinputlisting{exo1-FG.sql} + \lstinputlisting{exo1-FGL.sql} \fi \ifnum\versionExo=4 %PL1 @@ -628,7 +628,7 @@ Messages à prévoir : \item Des réservations en cours ou à venir utilisent cet équipement \item nb réservations passées ont été supprimées \end{itemize} -% \lstinputlisting{exo2-FG.sql} + \lstinputlisting{exo2-FGL.sql} \fi \ifnum\versionExo=4 %PL2 @@ -734,7 +734,7 @@ Nombre de joueurs à prévenir : nb \begin{center} \fbox{ \BUseVerbatim{AffichageFG}} \end{center} - \lstinputlisting{exo3-FG.sql} + \lstinputlisting{exo3-FGL.sql} \fi \ifnum\versionExo=4 %PL3 @@ -835,7 +835,7 @@ Id réservation : XXXXX date : XX/XX/XX Coût des équipements : 9999 euros \end{small} } \end{center} -%\lstinputlisting{exo4-FG.sql} +\lstinputlisting{exo4-FGL.sql} \fi \ifnum\versionExo=4 %PL4 diff --git a/EXOS/exo4-PL.sql b/EXOS/exo4-PL.sql index 79f315c..09619ca 100644 --- a/EXOS/exo4-PL.sql +++ b/EXOS/exo4-PL.sql @@ -1,37 +1,39 @@ -drop table tresultat purge; -create table tresultat(ligne varchar2(200)); - -declare +drop table tresultat purge; +create table tresultat(ligne varchar2(200)); +declare dnumCreneau varchar2(10); -dhdebut number; -dbenef number; +didReservation char(3); +dhdebut number; +dbenefT number; +dbenefE number; +dbenef number; dnbjoueur number; + +cursor CUR is select F.numCreneau, sum(F.tarifHoraire*S.duree) + sum(E.tarif*C.nombre), count(FR.idJoueur) +from reservation R, creneau CR, facturer F, sport S , faire FR, contenir C, equipement E, terrain T +WHERE S.nomSport=T.nomSport +and T.idTerrain=R.idTerrain +and R.numCreneau=CR.numCreneau +and CR.numCreneau=F.numCreneau +and S.nomSport= F.nomSport +and FR.idReserv=R.idReserv +and R.idReserv=C.idReserv +and E.idEquipement=C.idEquipement +group by F.numCreneau +order by 2; -dmessage varchar2(200); -inexistant exception; -probleme exception; -dcpt number; -dnb number:=0; -cursor CUR is select CR.numcreneau, CR.hdebut, sum(F.tarifhoraire*R.nbjoueur)+sum(E.tarif*C.nombre), sum(nbjoueur) - from creneau CR, facturer F, contenir C, reservation R, equipement E - WHERE E.idequipement = C.idequipement - AND R.idReserv = C.idReserv - AND CR.numcreneau = R.numcreneau - order by 2; - -begin -open CUR; -fetch cur into dnumCreneau, dhdenut, dbenef, dnbjoueur ; -while cur%FOUND -loop - insert into tresultat values('NumCreneau:'||dnumCreneau||' hdebut :'||'Heure debut:'||dhdebut ||' Benefice:'||dbenef||' Nb joueurs'||dnbjoueur); - fetch cur into dnumCreneau, dhdenut, dbenef, dnbjoueur ; -end loop; -close CUR; -end; -. -/ -select * from tresultat; - - - + +begin +open CUR; +fetch CUR into dnumCreneau, dbenef, dnbJoueur; +while CUR%FOUND +loop +select heureDebut into dhdebut from creneau CR where CR.numCreneau=dnumCreneau; +insert into tresultat values('NumCreneau:'||dnumCreneau||' Heure debut:'||dhdebut ||' Benefice:'||dbenef||' Nb joueurs:'||dnbjoueur); +fetch CUR into dnumCreneau, dbenef, dnbJoueur; +end loop; +close CUR; +end; +. +/ +select * from tresultat; \ No newline at end of file