From 467f7be883e69e24cf77e16235635ae23897962b Mon Sep 17 00:00:00 2001 From: Gaetan Carabetta Date: Sat, 22 Jun 2019 15:14:30 +0200 Subject: [PATCH] update request --- application/BD/drop.sql | 15 +++++++ application/BD/requetes.sql | 80 +++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 application/BD/drop.sql create mode 100644 application/BD/requetes.sql diff --git a/application/BD/drop.sql b/application/BD/drop.sql new file mode 100644 index 0000000..870c236 --- /dev/null +++ b/application/BD/drop.sql @@ -0,0 +1,15 @@ +/* +Les tables doivent être détruites +dans l'ordre inverse de leur création. +*/ + +DROP TABLE IF EXISTS Posologie; +DROP TABLE IF EXISTS Espece_Med; +DROP TABLE IF EXISTS Traitement; +DROP TABLE IF EXISTS Medicament; +DROP TABLE IF EXISTS Animal; +DROP TABLE IF EXISTS Espece; +DROP TABLE IF EXISTS Veterinaire; +DROP TABLE IF EXISTS Assistant; +DROP TABLE IF EXISTS Client; +DROP TABLE IF EXISTS ClasseEspece; diff --git a/application/BD/requetes.sql b/application/BD/requetes.sql new file mode 100644 index 0000000..55c5493 --- /dev/null +++ b/application/BD/requetes.sql @@ -0,0 +1,80 @@ +/* Information : + + Les variables sont notées de cette façon : $nomVariable + +*/ + +/* Requête pour la quantité de médicament prescrite + à un animal */ +SELECT P.nomMolec as medicament, COUNT(*) as quantite_prescrite +FROM Posologie P JOIN Traitement T on P.traitement=T.idTraitement +WHERE T.idAnimal= $idAnimal +GROUP BY P.nomMolec; + +/* Requete pour le nombre de comprimé prescrit + à un animal */ +select P.nomMolec,SUM(P.duree*P.nbJourna) FROM Posologie P +JOIN Traitement T ON P.traitement=T.idTraitement WHERE +T.idAnimal=$idAnimal group by P.nomMolec; + + +/***********************************/ + +/* Requête pour la quantité de médicament prescrite + dans la clinique */ +SELECT P.nomMolec as medicament, COUNT(*) as quantite_prescrite +FROM Posologie P +GROUP BY P.nomMolec; + +/* Requete pour le nombre de comprimé prescrit + dans la clinique */ +SELECT CNT.medicament, sum(CNT.nb) as nombre_comprime +FROM (SELECT P.nomMolec as medicament, COUNT(*)*P.duree*P.nbJourna as nb + FROM Posologie P + GROUP BY P.nomMolec, P.duree, P.nbJourna) as CNT +GROUP BY CNT.medicament + +/***********************************/ + +/* Requête pour la quantité total d'un médicament + prescrit dans la clinique */ +SELECT P.nomMolec as medicament, COUNT (*) as quantite_medicament +FROM Posologie P +WHERE P.nomMolec = $nomMolec +GROUP BY P.nomMolec; + +/* Requete pour le nombre de comprimé d'un medicament + prescrit dans la clinique */ +SELECT CNT.medicament, sum(CNT.nb) as nombre_comprime +FROM (SELECT P.nomMolec as medicament, COUNT(*)*P.duree*P.nbJourna as nb + FROM Posologie P + WHERE P.nomMolec = $nomMolec + GROUP BY P.nomMolec, P.duree, P.nbJourna) as CNT +GROUP BY CNT.medicament; + +/***********************************/ + +/* Requête pour le poids moyen d'une espèce traité + dans la clinique */ +SELECT A.especenom as Espece, AVG(A.poids) as Poids_Moyen +FROM Animal A +WHERE A.especenom = $especeNom +GROUP BY A.especenom; + +/* Requête pour la taille moyenne d'une espèce traité + dans la clinique */ +SELECT A.especenom as Espece, AVG(A.taille) as Taille_Moyenne +FROM Animal A +WHERE especenom = $especenom +GROUP BY A.especenom; + +/* On peut en déduire des deux requêtes précédentes + des requêtes pour l'ensemble des espèces + de la clinique */ + +/* Requete pour le poids moyen et la taille moyenne de toutes les especes + traitées dans la clinique */ +SELECT A.especenom as Espece, AVG(a.poids) as Poids_Moyen, AVG(A.taille) as Taille_Moyenne +FROM Animal A +GROUP BY A.especenom; + -- GitLab