Ju2010-EFF TP V01: Correction SQL
Page 1 sur 1 • Partagez
Ju2010-EFF TP V01: Correction SQL
create database Hopital
use Hopital
Go
Create table Hopital(idhopital int identity primary key, nom varchar(30),adresse varchar(100),ville varchar(50))
Create table Specialite(idspecialite int identity primary key, libelle varchar(30))
Create table Patient(idpatient int identity primary key, nom
varchar(30),prenom varchar(30), DdN smalldatetime, Sexe
varchar(10),adresse varchar(100))
Create table Servicee(idservice int identity primary key, idhopital int foreign key references Hopital(idhopital),Nblits int)
Create table Medecin(idmedecin int identity primary key,Nom
nvarchar(30), prenom varchar(30), DdN smalldatetime, sexe varchar(10),
idspecialite int foreign key references
Specialite(idspecialite),idservice int foreign key references
Servicee(idservice) )
Create table Sejourne(idsejour int identity primary key, idservice
int foreign key references Servicee(idservice),idpatient int foreign key
references Patient(idpatient), DateEntree smalldatetime,DateSortie
smalldatetime)
Create table Soigne(idsoin int identity primary key, idmedecin int
foreign key references Medecin(idmedecin),idpatient int foreign key
references Patient(idpatient), NomMaladi varchar(150), Commentaire
varchar(200),Date_soigne smalldatetime)
Go
--A
Create proc AffNbreSej @idPatient int as
begin
select count(*) as Nbre from sejourne where idpatient=@idpatient
end
exec AffNbreSej 2
--B
Create Proc SejourDat @dat1 smalldatetime,@dat2 smalldatetime as
begin
select Soigne.IdSoin,Medecin.nom,patient.nom
from soigne,medecin,sejourne,patient,Servicee
Where sejourne.dateEntree>=@dat1 AND sejourne.dateSortie<=@dat2
AND sejourne.idpatient=patient.idpatient ANd Sejourne.idservice=servicee.idService
AND Servicee.idService=Medecin.IdService
end
exec SejourDat '1/1/2001','1/5/2001'
--C
create proc MedSejourne as
begin
select patient.idpatient, Nom, prenom
From patient,sejourne,soigne
Where patient.idpatient=sejourne.idpatient and patient.idpatient=soigne.idpatient
group by idsejour,patient.idpatient, Nom, prenom
having count(distinct idmedecin)>=2
end
exec MedSejourne
-- D
alter trigger formatTel on medecin for insert,update
as
begin
update medecin set tel= substring(tel,1,2) + ' ' +substring(tel,3,2)+
'.' +substring(tel,5,2)+ '.' +substring(tel,7,2)+ '.'
+substring(tel,9,2) where idmedecin in (select idmedecin from inserted)
end
-- test
insert into medecin( nom, prenom, ddn, sexe, idspecialite, idservice, tel)
values('Ahmed00','Ahmed00','1/1/2000','M',1,1,'0522332222')
update medecin set tel='0522336622' where idmedecin=1
select * from medecin
select * from sejourne
si vous avez des commentaires n' hésiter pas
use Hopital
Go
Create table Hopital(idhopital int identity primary key, nom varchar(30),adresse varchar(100),ville varchar(50))
Create table Specialite(idspecialite int identity primary key, libelle varchar(30))
Create table Patient(idpatient int identity primary key, nom
varchar(30),prenom varchar(30), DdN smalldatetime, Sexe
varchar(10),adresse varchar(100))
Create table Servicee(idservice int identity primary key, idhopital int foreign key references Hopital(idhopital),Nblits int)
Create table Medecin(idmedecin int identity primary key,Nom
nvarchar(30), prenom varchar(30), DdN smalldatetime, sexe varchar(10),
idspecialite int foreign key references
Specialite(idspecialite),idservice int foreign key references
Servicee(idservice) )
Create table Sejourne(idsejour int identity primary key, idservice
int foreign key references Servicee(idservice),idpatient int foreign key
references Patient(idpatient), DateEntree smalldatetime,DateSortie
smalldatetime)
Create table Soigne(idsoin int identity primary key, idmedecin int
foreign key references Medecin(idmedecin),idpatient int foreign key
references Patient(idpatient), NomMaladi varchar(150), Commentaire
varchar(200),Date_soigne smalldatetime)
Go
--A
Create proc AffNbreSej @idPatient int as
begin
select count(*) as Nbre from sejourne where idpatient=@idpatient
end
exec AffNbreSej 2
--B
Create Proc SejourDat @dat1 smalldatetime,@dat2 smalldatetime as
begin
select Soigne.IdSoin,Medecin.nom,patient.nom
from soigne,medecin,sejourne,patient,Servicee
Where sejourne.dateEntree>=@dat1 AND sejourne.dateSortie<=@dat2
AND sejourne.idpatient=patient.idpatient ANd Sejourne.idservice=servicee.idService
AND Servicee.idService=Medecin.IdService
end
exec SejourDat '1/1/2001','1/5/2001'
--C
create proc MedSejourne as
begin
select patient.idpatient, Nom, prenom
From patient,sejourne,soigne
Where patient.idpatient=sejourne.idpatient and patient.idpatient=soigne.idpatient
group by idsejour,patient.idpatient, Nom, prenom
having count(distinct idmedecin)>=2
end
exec MedSejourne
| |
-- D
alter trigger formatTel on medecin for insert,update
as
begin
update medecin set tel= substring(tel,1,2) + ' ' +substring(tel,3,2)+
'.' +substring(tel,5,2)+ '.' +substring(tel,7,2)+ '.'
+substring(tel,9,2) where idmedecin in (select idmedecin from inserted)
end
-- test
insert into medecin( nom, prenom, ddn, sexe, idspecialite, idservice, tel)
values('Ahmed00','Ahmed00','1/1/2000','M',1,1,'0522332222')
update medecin set tel='0522336622' where idmedecin=1
select * from medecin
select * from sejourne
si vous avez des commentaires n' hésiter pas
Mr.Ayoub- Administrateur
- Nombre de messages : 5345
Date d'inscription : 10/01/2010
Sujets similaires
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYarNouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYar
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYarNouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYar
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYarNouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYar
» Nouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYarNouveau 2012 :Correction d'examens passage et fin formation 2005 à 2011 http://adf.ly/9mYar
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ven Nov 16, 2018 6:14 pm par tri2b
» Examen de fin de formation Théorique 2018 TDM
Mar Juin 19, 2018 8:08 pm par Mr.Ayoub
» Examen de Passage Chef Chantier TP 2010 Pratique
Lun Juin 04, 2018 11:07 am par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2012 Théorique
Dim Juin 03, 2018 3:59 pm par Mr.Ayoub
» Examen de fin de formation TSGO 2016 Pratique Variante 1
Dim Juin 03, 2018 3:36 pm par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2008 Théorique
Dim Juin 03, 2018 3:25 pm par Mr.Ayoub
» Examen de Passage Chef de Chantier T.P 2008 Théorique et Pratique
Dim Juin 03, 2018 3:24 pm par Mr.Ayoub
» Examen de Fin de Formation Gestion des Entreprises TSGE 2015
Mar Mai 29, 2018 12:18 pm par Mr.Ayoub
» Examen de Passage 2015 Gestion des Entreprises TSGE
Mar Mai 29, 2018 11:55 am par Mr.Ayoub
» Examen de Passage Gestion des Entreprises TSGE 2017
Mar Mai 29, 2018 11:51 am par Mr.Ayoub