Master Expertise en Ingénierie des Systèmes d`Information en Santé
Transcription
Master Expertise en Ingénierie des Systèmes d`Information en Santé
Master Expertise en Ingénierie des Systèmes d’Information en Santé Module M1 SQL Solutions des exercices 1. SELECT Diagnostic.Libellé, Diagnostic.CodeCIM10 FROM Diagnostic WHERE (((Diagnostic.CodeCIM10)="D89.1")); Cryoglobulinémie 2. SELECT Patient.Nom, Patient.Prénom, Patient.NumDossier FROM Patient WHERE (((Patient.NumDossier)=449)); BARBIER, René 3. SELECT Séjour.DateEntrée, Séjour.DateSortie, Séjour.IdSéjour FROM Séjour WHERE (((Séjour.IdSéjour)=188)); 12/08/1998 - 18/12/1998 4. SELECT Patient.Nom, Patient.Prénom, Patient.DateNaissance, Séjour.IdSéjour FROM Patient INNER JOIN Séjour ON Patient.NumDossier = Séjour.NumDossier WHERE (((Séjour.IdSéjour)=235)); PEPIN, ANGE, 19/12/1934 5. Solution 1 SELECT Séjour.IdSéjour, Séjour.DateEntrée FROM Patient INNER JOIN Séjour ON Patient.NumDossier = Séjour.NumDossier WHERE (((Patient.Nom)="PEPIN") AND ((Patient.Prénom)="ANGE") AND ((Patient.DateNaissance)=#12/19/1934#)) ORDER BY Séjour.DateEntrée; IdSéjour DateEntrée 233 03/08/1998 234 06/08/1998 235 20/08/1998 100 03/09/1998 236 16/09/1998 Solution 2 SELECT Patient.NumDossier FROM Patient INNER JOIN Séjour ON Patient.NumDossier = Séjour.NumDossier WHERE (((Séjour.IdSéjour)=235)); SELECT Séjour.IdSéjour, Séjour.DateEntrée FROM Séjour235 INNER JOIN Séjour ON Séjour235.NumDossier = Séjour.NumDossier ORDER BY Séjour.DateEntrée; 6. SELECT Patient.Nom, Patient.Prénom, Patient.Adresse FROM Patient INNER JOIN (Médecin INNER JOIN SuiviMédecin ON Médecin.IdMédecin = SuiviMédecin.IdMédecin) ON Patient.NumDossier = SuiviMédecin.NumDossier WHERE (((Médecin.Nom)="FERNANDEZ") AND ((Médecin.Prénom)="Guy")); Nom Prénom Adresse BASTHARD Mustafa 8, rue du Dr Romieu GEX Madeleine Place Aristide Briand PASSERAT Humberto Place des Grottes 3 RAPHOZ MARC 3,Rue St Etienne PETIT Edmond Rue Louise Lériget 7. SELECT Séjour.NumDossier, Count(Séjour.IdSéjour) AS CompteDeIdSéjour FROM Séjour GROUP BY Séjour.NumDossier; 8. SELECT Avg(CompteSéjours.CompteDeIdSéjour) AS MoyenneDeCompteDeIdSéjour FROM CompteSéjours; 9. SELECT Count(BilanHép.GammaGT) AS CompteDeGammaGT FROM BilanHép HAVING (((Count(BilanHép.GammaGT)) Is Not Null)); 36 10. Solution 1 Créer une vue que nous appellerons GammaGT SELECT BilanHép.GammaGT FROM BilanHép WHERE (((BilanHép.GammaGT) Is Not Null)); SELECT Avg(GammaGT.GammaGT) AS MoyenneDeGammaGT FROM GammaGT; Solution 2 SELECT Avg(BilanHép.GammaGT) AS MoyenneDeGammaGT FROM BilanHép; 43,25 11. SELECT Séjour.NumDossier FROM Séjour INNER JOIN NFS ON Séjour.IdSéjour = NFS.IdSéjour GROUP BY Séjour.NumDossier HAVING (((Min(NFS.Hémoglobine))<12)); 1734 12. SELECT Médecin.IdMédecin, Count(Patient.NumDossier) AS CompteDeNumDossier FROM Patient INNER JOIN (Médecin INNER JOIN SuiviMédecin ON Médecin.IdMédecin = SuiviMédecin.IdMédecin) ON Patient.NumDossier = SuiviMédecin.NumDossier GROUP BY Médecin.IdMédecin; 13. SELECT Avg(SuiviPatients.CompteDeNumDossier) AS MoyenneDeCompteDeNumDossier FROM SuiviPatients; 14. Créer une vue que nous appellerons MédecinPatientsSéjours SELECT Médecin.IdMédecin, Count(Séjour.IdSéjour) AS CompteDeIdSéjour FROM (Patient INNER JOIN (Médecin INNER JOIN SuiviMédecin ON Médecin.IdMédecin = SuiviMédecin.IdMédecin) ON Patient.NumDossier = SuiviMédecin.NumDossier) INNER JOIN Séjour ON Patient.NumDossier = Séjour.NumDossier GROUP BY Médecin.IdMédecin; SELECT MédecinPatientsSéjours.IdMédecin, Avg(MédecinPatientsSéjours.CompteDeIdSéjour) AS MoyenneDeCompteDeIdSéjour FROM MédecinPatientsSéjours GROUP BY MédecinPatientsSéjours.IdMédecin; 15. Solution 1 Créer une première vue que nous appellerons SéjoursBilans SELECT Séjour.IdSéjour, Count(BilanHép.IdSéjour) AS CompteDeIdSéjour, Count(NFS.IdSéjour) AS CompteDeIdSéjour1, Count(Iono.IdSéjour) AS CompteDeIdSéjour2 FROM ((Séjour LEFT JOIN BilanHép ON Séjour.IdSéjour = BilanHép.IdSéjour) LEFT JOIN NFS ON Séjour.IdSéjour = NFS.IdSéjour) LEFT JOIN Iono ON Séjour.IdSéjour = Iono.IdSéjour GROUP BY Séjour.IdSéjour; Créer une seconde vue que nous appellerons SéjoursTousBilans SELECT SéjoursBilans.IdSéjour, [CompteDeIdSéjour]+[CompteDeIdSéjour1]+[CompteDeIdSéjour2] AS Bilans FROM SéjoursBilans; SELECT Médecin.IdMédecin, Avg(SéjoursTousBilans.Bilans) AS MoyenneDeBilans FROM ((Patient INNER JOIN (Médecin INNER JOIN SuiviMédecin ON Médecin.IdMédecin = SuiviMédecin.IdMédecin) ON Patient.NumDossier = SuiviMédecin.NumDossier) INNER JOIN Séjour ON Patient.NumDossier = Séjour.NumDossier) INNER JOIN SéjoursTousBilans ON Séjour.IdSéjour = SéjoursTousBilans.IdSéjour GROUP BY Médecin.IdMédecin; Solution 2 Créer une vue que nous appellerons MédecinBilans SELECT Médecin.IdMédecin, Count(BilanHép.IdSéjour) AS CompteDeIdSéjour, Count(NFS.IdSéjour) AS CompteDeIdSéjour1, Count(Iono.IdSéjour) AS CompteDeIdSéjour2 FROM ((((Patient INNER JOIN Séjour ON Patient.NumDossier = Séjour.NumDossier) INNER JOIN (Médecin INNER JOIN SuiviMédecin ON Médecin.IdMédecin = SuiviMédecin.IdMédecin) ON Patient.NumDossier = SuiviMédecin.NumDossier) LEFT JOIN BilanHép ON Séjour.IdSéjour = BilanHép.IdSéjour) LEFT JOIN Iono ON Séjour.IdSéjour = Iono.IdSéjour) LEFT JOIN NFS ON Séjour.IdSéjour = NFS.IdSéjour GROUP BY Médecin.IdMédecin; SELECT MédecinBilans.IdMédecin, ([CompteDeIdSéjour]+[CompteDeIdSéjour1]+[CompteDeIdSéjour2])/3 AS MoyenneDeBilans FROM MédecinBilans;