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;

Documents pareils