ANGD Mathrice : Sites web dynamiques TD1 - Corrigé CIRM Marseille
SELECT Hopital.Nom
FROM Hopital, Service, Specialite
WHERE Hopital.IdHopital = Service.IdHopital
AND Service.IdSpecialite = Specialite.IdSpecialite
AND Specialite.Nom = 'ORL';
6. Écrivez la requête permettant de lister tous les actes médicaux réalisés sur le
patient « Kermadec » né le 05/01/1970.
SELECT Soigne.*
FROM Soigne, Patient
WHERE Soigne.IdPatient = Patient.IdPatient
AND Patient.Nom = 'Kermadec'
AND Patient.DDN = '1970-01-05';
7. Écrivez la requête permettant de savoir combien de patients sont dans un service
d'urgences,
SELECT COUNT(DISTINCT Sejourne.IdPatient)
FROM Sejourne, Service, Specialite
WHERE Sejourne.IdService = Service.IdService
AND Service.IdSpecialite = Specialite.IdSpecialite
AND Sejourne.DateSortie is Null
AND Specialite.Nom = 'Urgences';
Autre solution :
SELECT count(Sejourne.IdPatient) FROM Sejourne, Service,
Specialite
WHERE DateEntree <= curdate()
AND (DateSortie is null or DateSortie="0000-00-00" or
DateSortie >= curdate())
AND Sejourne.IdService=Service.IdService
AND Service.IdSpecialite=Specialite.IdSpecialite
AND Specialite.Nom="Urgences";
Attention "is null" ne marche que si le champ à été défini "NULL" à la
création de la table, sinon avec "NOT NULL" la date sera "0000-00-00"
8. Écrivez la requête permettant d'avoir la liste des patients présents dans le service
des urgences du CHU Pontchaillou.
SELECT Patient.Nom, Patient.Prenom
FROM Sejourne, Service, Specialite, Hopital, Patient
WHERE Sejourne.IdService = Service.IdService
AND Service.IdSpecialite = Specialite.IdSpecialite
AND Sejourne.DateSortie is Null
AND Specialite.Nom = 'Urgences'
AND Service.IdHopital = Hopital.IdHopital
AND Hopital.nom = 'Pontchaillou'
AND Patient.IdPatient = Sejourne.IdPatient;
D.Brémont 6 au 10 novembre 2006 2/2