Commit 2d9337df authored by Dimitri Nicolas's avatar Dimitri Nicolas
Browse files

Version finale

parents a1a79b13 b3d3b3d5
...@@ -9,7 +9,7 @@ from PretDataMapper import PretDataMapper ...@@ -9,7 +9,7 @@ from PretDataMapper import PretDataMapper
import datetime import datetime
def UserConnection(): def UserConnection():
#permet à l'utilisateur de saisir ces identifiants de connexion #permet à l'utilisateur de saisir ces identifiants de connexion
print("---------Bonjour, bienvenue à la bibliothéque!!!----------") print("---------Bonjour, bienvenue à la bibliothèque----------")
login = input("Entrer votre login:") login = input("Entrer votre login:")
mdp = input("Entrer votre mot de passe:") mdp = input("Entrer votre mot de passe:")
return (login,mdp) return (login,mdp)
...@@ -26,38 +26,38 @@ def affiche(listTuple:list, headers:Tuple): ...@@ -26,38 +26,38 @@ def affiche(listTuple:list, headers:Tuple):
print("{:>30s}".format(str(data)),end="") print("{:>30s}".format(str(data)),end="")
print(" ") print(" ")
def addAdherent(): def addAdherent():
print("--------------Ajout d'un adherent--------------------------") print("--------------Ajout d'un adhérent--------------------------")
login = input("Entrer un nouveaux login:") login = input("Entrer un nouveau login : ")
numcarte = input("Entrer le numéro de carte:") numcarte = input("Entrer le numéro de carte : ")
mdp = input("Entrer un nouveaux mot de passse:") mdp = input("Entrer un nouveau mot de passe : ")
nom = input("Entrer votre nom:") nom = input("Entrer votre nom : ")
prenom = input("Entrer votre prenom:") prenom = input("Entrer votre prenom : ")
adresse = input("Entrer votre adresse:") adresse = input("Entrer votre adresse : ")
adressemail = input("Entrer votre adresse mail:") adressemail = input("Entrer votre adresse mail : ")
tel = input("Entrer votre numéro de téléphone") tel = input("Entrer votre numéro de téléphone : ")
dateNaissance = datetime.strptime(input("Entrer votre date de naissance:")) dateNaissance = datetime.strptime(input("Entrer votre date de naissance : "))
return(login,numcarte,mdp,nom,prenom,adresse,adressemail,tel,dateNaissance) return(login,numcarte,mdp,nom,prenom,adresse,adressemail,tel,dateNaissance)
def addPersonnel(): def addPersonnel():
print("--------------Ajout d'un adherent--------------------------") print("--------------Ajout d'un adhérent--------------------------")
login = input("Entrer un nouveaux login:") login = input("Entrer un nouveau login : ")
mdp = input("Entrer un nouveaux mot de passse:") mdp = input("Entrer un nouveau mot de passe : ")
nom = input("Entrer votre nom:") nom = input("Entrer votre nom : ")
prenom = input("Entrer votre prenom:") prenom = input("Entrer votre prenom : ")
adresse = input("Entrer votre adresse:") adresse = input("Entrer votre adresse : ")
adressemail = input("Entrer votre adresse mail:") adressemail = input("Entrer votre adresse mail : ")
return(login,mdp,nom,prenom,adresse,adressemail) return(login,mdp,nom,prenom,adresse,adressemail)
def actionAdherent(): def actionAdherent():
print("------------------------MENU--------------------------------") print("------------------------MENU--------------------------------")
print("1 : Voir les exemplaires disponibles") print("1 : Voir les exemplaires disponibles")
print("2 : Voir les explaires que vous avez empruntés") print("2 : Voir les exemplaires que vous avez empruntés")
print("-1 :Se déconnecter de son compte.") print("-1 : Se déconnecter de votre compte.")
action = -2 action = -2
while action == -2: while action == -2:
try: try:
action = int(input("Veuillez saisir le numéro de votre action:")) action = int(input("Veuillez saisir le numéro de votre action : "))
except Exception: except Exception:
action = -2 action = -2
return(action) return(action)
...@@ -67,14 +67,14 @@ def actionMember(): ...@@ -67,14 +67,14 @@ def actionMember():
print("------------------------MENU--------------------------------") print("------------------------MENU--------------------------------")
print("1 : Gérer les emprunts.") print("1 : Gérer les emprunts.")
print("2 : Gérer les sanctions.") print("2 : Gérer les sanctions.")
print("3 : Gérer les resources.") print("3 : Gérer les ressources.")
print("4 : Voir les statistiques de la bibliothèque." ) print("4 : Voir les statistiques de la bibliothèque." )
print("5 : Gérer les utilisateurs.") print("5 : Gérer les utilisateurs.")
print("-1 :Se déconnecter de son compte.") print("-1 : Se déconnecter de son compte.")
action = -2 action = -2
while action == -2: while action == -2:
try: try:
action = int(input("Veuillez saisir le numéro de votre action:")) action = int(input("Veuillez saisir le numéro de votre action : "))
except Exception: except Exception:
action = -2 action = -2
return(action) return(action)
...@@ -88,7 +88,7 @@ def sanction(): ...@@ -88,7 +88,7 @@ def sanction():
action = -2 action = -2
while action == -2: while action == -2:
try: try:
action = int(input("Veuillez saisir le numéro de votre action:")) action = int(input("Veuillez saisir le numéro de votre action : "))
except Exception: except Exception:
action = -2 action = -2
return(action) return(action)
...@@ -102,22 +102,22 @@ def userManager(): ...@@ -102,22 +102,22 @@ def userManager():
action = -2 action = -2
while action == -2: while action == -2:
try: try:
action = int(input("Veuillez saisir le numéro de votre action:")) action = int(input("Veuillez saisir le numéro de votre action : "))
except Exception: except Exception:
action = -2 action = -2
return(action) return(action)
def loaning(): def loaning():
print("---------------------Gérer les ressources---------------------------") print("---------------------Gérer les ressources---------------------------")
print("1 : Voir les ressources disponible.") print("1 : Voir les ressources disponibles.")
print("2 : Voir la repartition des emprunts.") print("2 : Voir la répartition des emprunts.")
print("3 : Ajouter un Livre.") print("3 : Ajouter un livre.")
print("4 : Ajouter une oeuvre musicale.") print("4 : Ajouter une oeuvre musicale.")
print("5 : Ajouter un film.") print("5 : Ajouter un film.")
action = -2 action = -2
while action == -2: while action == -2:
try: try:
action = int(input("Veuillez saisir le numéro de votre action:")) action = int(input("Veuillez saisir le numéro de votre action : "))
except Exception: except Exception:
action = -2 action = -2
return(action) return(action)
...@@ -126,79 +126,69 @@ def loaning(): ...@@ -126,79 +126,69 @@ def loaning():
def Statistiques(): def Statistiques():
print("---------------------Voir les statistiques-------------------------") print("---------------------Voir les statistiques-------------------------")
print("1 : Voir les resources populaires.") print("1 : Voir les ressources populaires.")
print("2 : Voir le nombre d'emprunts par resource.") print("2 : Voir le nombre d'emprunts par ressource.")
print("3 : Voir les genres populaires.") print("3 : Voir les genres populaires.")
print("4 : Voir le nombre d'emprunts par ressources.") print("4 : Voir le nombre d'emprunts par ressource.")
print("5 : Voir le genre prefere des adherents.") print("5 : Voir le genre préféré des adhérents.")
print("6 : Voir l'age moyen des adherents'.") print("6 : Voir l'âge moyen des adhérents'.")
print("7 : Voir les types de documents populaires.") print("7 : Voir les types de documents populaires.")
print("8 : Voir la duree moyenne d'emprunt par adherent.") print("8 : Voir la durée moyenne d'un emprunt par adhérent.")
print("9 : voir la duree moyenne d'emprunt.") print("9 : Voir la durée moyenne d'un emprunt par adhérent.")
print("10 : Voir la duree max d'emprunts par adherent.") print("10 : Voir la durée max d'un emprunt par adhérent.")
print("11 : Voir la duree max des prets.") print("11 : Voir la durée max des prêts.")
print("12 : Voir la duree moyenne des emprunts par ressources.") print("12 : Voir la durée moyenne des emprunts par ressource.")
print("13 : Voir la duree max d'emprunts par ressource.") print("13 : Voir la durée max d'un emprunt par ressource.")
action = -2 action = -2
while action == -2: while action == -2:
try: try:
action = int(input("Veuillez saisir le numéro de votre action:")) action = int(input("Veuillez saisir le numéro de votre action : "))
except Exception: except Exception:
action = -2 action = -2
return(action) return(action)
def addLivre(): def addLivre():
codeunique = input("Entrer le code du livre:") codeunique = input("Entrer le code du livre : ")
titre = input("Entrer le titre du livre:") titre = input("Entrer le titre du livre : ")
dateapparition = datetime.strptime(input("Entrer la date du livre:")) dateapparition = datetime.strptime(input("Entrer la date du livre : "))
editeur = input("Entrer l'editeur du livre:") editeur = input("Entrer l'éditeur du livre : ")
genre = input("Entrer le genre du livre:") genre = input("Entrer le genre du livre : ")
codeclassification = input("Entrer le code de classification du livre:") codeclassification = input("Entrer le code de classification du livre : ")
isbn = input("Entrer le code isbn du livre:") isbn = input("Entrer le code ISBN du livre : ")
resume = input("Entrer le resume du livre:") resume = input("Entrer le résumé du livre : ")
langue = input("Entrer la langue du livre:") langue = input("Entrer la langue du livre : ")
return (codeunique, titre, dateapparition, editeur, genre, codeclassification, isbn, resume, langue) return (codeunique, titre, dateapparition, editeur, genre, codeclassification, isbn, resume, langue)
def addOeuvremusical(): def addOeuvremusical():
codeunique = input("Entrer le code de l'oeuvre musical:") codeunique = input("Entrer le code de l'oeuvre musicale : ")
titre = input("Entrer le titre de l'oeuvre musical:") titre = input("Entrer le titre de l'oeuvre musicale : ")
dateapparition = datetime.strptime(input("Entrer la date de l'oeuvre musical:")) dateapparition = datetime.strptime(input("Entrer la date de l'oeuvre musicale : "))
editeur = input("Entrer l'editeur de l'oeuvre musical:") editeur = input("Entrer l'éditeur de l'oeuvre musicale : ")
genre = input("Entrer le genre de l'oeuvre musical:") genre = input("Entrer le genre de l'oeuvre musicale : ")
codeclassification = input("Entrer le code de classification de l'oeuvre musical:") codeclassification = input("Entrer le code de classification de l'oeuvre musicale : ")
longueur = input("Entrer la longueur de l'oeuvre musical:") longueur = input("Entrer la longueur de l'oeuvre musicale : ")
return (codeunique, titre, dateapparition, editeur, genre, codeclassification, longueur)
def addOeuvremusical():
codeunique = input("Entrer le code de l'oeuvre musical:")
titre = input("Entrer le titre de l'oeuvre musical:")
dateapparition = datetime.strptime(input("Entrer la date de l'oeuvre musical:"))
editeur = input("Entrer l'editeur de l'oeuvre musical:")
genre = input("Entrer le genre de l'oeuvre musical:")
codeclassification = input("Entrer le code de classification de l'oeuvre musical:")
longueur = input("Entrer la longueur de l'oeuvre musical:")
return (codeunique, titre, dateapparition, editeur, genre, codeclassification, longueur) return (codeunique, titre, dateapparition, editeur, genre, codeclassification, longueur)
def addFilm(): def addFilm():
codeunique = input("Entrer le code du film:") codeunique = input("Entrer le code du film : ")
titre = input("Entrer le titre du film:") titre = input("Entrer le titre du film : ")
dateapparition = datetime.strptime(input("Entrer la date du film:")) dateapparition = datetime.strptime(input("Entrer la date du film : "))
editeur = input("Entrer l'editeur du film:") editeur = input("Entrer l'éditeur du film : ")
genre = input("Entrer le genre du film:") genre = input("Entrer le genre du film : ")
codeclassification = input("Entrer le code de classification du film:") codeclassification = input("Entrer le code de classification du film : ")
longueur = input("Entrer la longueur du film:") longueur = input("Entrer la longueur du film : ")
synopsis = input("Entrer le synopsis du film:") synopsis = input("Entrer le synopsis du film : ")
return (codeunique, titre, dateapparition, editeur, genre, codeclassification, longueur, synopsis) return (codeunique, titre, dateapparition, editeur, genre, codeclassification, longueur, synopsis)
def pretmanager(): def pretmanager():
print("---------------------Gérer les prets---------------------------") print("---------------------Gérer les prêts---------------------------")
print("1 : faire un emprunts.") print("1 : Faire un emprunt.")
print("2 : Faire un retour.") print("2 : Faire un retour.")
print("3 : voir la liste des ecemplaires empruntés") print("3 : Voir la liste des exemplaires empruntés.")
print("4 : mettre à jour l'état exemplaire.") print("4 : Mettre à jour l'état d'un exemplaire.")
action = int(input("veuillez saisir le numéro de votre action:")) action = int(input("Veuillez saisir le numéro de votre action : "))
return (action) return (action)
def Menu(): def Menu():
...@@ -217,7 +207,7 @@ def Menu(): ...@@ -217,7 +207,7 @@ def Menu():
act = pretmanager() act = pretmanager()
if(act==1): if(act==1):
login = input("Entrez le login de l'adhérent : ") login = input("Entrez le login de l'adhérent : ")
ressources_str = input("Entrez les ids d'exemplaire séparés par une virgule (ex : 7,8,9,10) :") ressources_str = input("Entrez les ids d'exemplaires séparés par une virgule (ex : 7,8,9,10) :")
ressources = ressources_str.split(",") ressources = ressources_str.split(",")
duree = input("Entrez le nombre de jours pour le prêt : ") duree = input("Entrez le nombre de jours pour le prêt : ")
dataMapper.creerPret(login, ressources, duree) dataMapper.creerPret(login, ressources, duree)
...@@ -228,7 +218,7 @@ def Menu(): ...@@ -228,7 +218,7 @@ def Menu():
pretID = input("Entrez le numéro de prêt : ") pretID = input("Entrez le numéro de prêt : ")
dataMapper.retourPret(pretID) dataMapper.retourPret(pretID)
elif(act==3): elif(act==3):
pretID = input("Entrez le numéro du prêt") pretID = input("Entrez le numéro du prêt : ")
data = dataMapper.getExemplairesPret(pretID) data = dataMapper.getExemplairesPret(pretID)
affiche(data, ("Réf.", "N° Pret")) affiche(data, ("Réf.", "N° Pret"))
elif(act==4): elif(act==4):
...@@ -240,7 +230,7 @@ def Menu(): ...@@ -240,7 +230,7 @@ def Menu():
dataMapper = SanctionDataMapper() dataMapper = SanctionDataMapper()
act = sanction() act = sanction()
if (act == 1): if (act == 1):
login = input("Saisir le login de l'adherent à ajouter à la blacklist:") login = input("Saisir le login de l'adhérent à ajouter à la blacklist : ")
dataMapper.blacklister(login) dataMapper.blacklister(login)
elif (act == 2): elif (act == 2):
data = dataMapper.getSanctions() data = dataMapper.getSanctions()
...@@ -283,38 +273,38 @@ def Menu(): ...@@ -283,38 +273,38 @@ def Menu():
affiche(data, ("Genre", "Nb emprunts")) affiche(data, ("Genre", "Nb emprunts"))
elif (act == 4): elif (act == 4):
genre = input("Entrer :") genre = input("Entrer :")
data=dataMapper.nombreEmpruntRessourcegenre(genre) data=dataMapper.nombreEmpruntParGenre(genre)
print(f"Le nombre d'emprunt pour le genre {genre} est de {data}.") print(f"Le nombre d'emprunts pour le genre {genre} est de {data}.")
elif (act == 5): elif (act == 5):
login = input("Entrer le login d'un adherent:") login = input("Entrer le login d'un adhérent:")
data=dataMapper.genrePrefereAdherent(login) data=dataMapper.genrePrefereAdherent(login)
print(f"Le genre prefere de l'adherent {login} est '{data}'.") print(f"Le genre préféré de l'adhérent {login} est '{data}'.")
elif (act == 6): elif (act == 6):
data=dataMapper.ageMoyenAdherent() data=dataMapper.ageMoyenAdherent()
print(f"L'age moyen des adherents est de {data}.") print(f"L'âge moyen des adhérents est de {data}.")
elif (act == 7): elif (act == 7):
data=dataMapper.typeDocumentPopulaire() data=dataMapper.typeDocumentPopulaire()
print(f"Les documents les plus empruntés sont les {data}.") print(f"Les documents les plus empruntés sont les {data}.")
elif (act == 8): elif (act == 8):
login = input("Entrer le login d'un adherent:") login = input("Entrer le login d'un adhérent:")
data=dataMapper.dureeMoyenneEmpruntParAdherent(login) data=dataMapper.dureeMoyenneEmpruntParAdherent(login)
print(f"La duree moyenne d'un emprunt par l'adherent {login} est de {data} jours.") print(f"La durée moyenne d'un emprunt par l'adhérent {login} est de {data} jours.")
elif (act == 9): elif (act == 9):
data=dataMapper.dureeMoyenneEmprunt() data=dataMapper.dureeMoyenneEmprunt()
print(f"La duree moyenne d'un emprunt est de {data} jours.") print(f"La durée moyenne d'un emprunt est de {data} jours.")
elif (act == 10): elif (act == 10):
login = input("Entrer le login d'un adherent:") login = input("Entrer le login d'un adhérent:")
data=dataMapper.dureeMaxEmpruntParAdherent(login) data=dataMapper.dureeMaxEmpruntParAdherent(login)
print(f"Le pret le plus long fu de {data} jours.") print(f"Le plus long emprunt de {login} a duré {data} jours.")
elif (act == 11): elif (act == 11):
data=dataMapper.dureeMaxPret() data=dataMapper.dureeMaxPret()
print(f"Le pret le plus long fu de {data} jours.") print(f"Le plus long emprunt a duré {data} jours.")
elif (act == 12): elif (act == 12):
codeunique = input("Entrer le code de la resource:") codeunique = input("Entrer le code de la ressource : ")
data=dataMapper.dureeMoyenneEmpruntParRessource(codeunique) data=dataMapper.dureeMoyenneEmpruntParRessource(codeunique)
print(f"Cette ressource a été empruntée {data} jours en moyenne.") print(f"Cette ressource a été empruntée {data} jours en moyenne.")
elif (act == 13): elif (act == 13):
codeunique = input("Entrer le code de la resource:") codeunique = input("Entrer le code de la ressource : ")
data=dataMapper.dureeMaxEmpruntParRessource(codeunique) data=dataMapper.dureeMaxEmpruntParRessource(codeunique)
print(f"Cette ressource a été empruntée au maximum {data} jours.") print(f"Cette ressource a été empruntée au maximum {data} jours.")
...@@ -330,10 +320,10 @@ def Menu(): ...@@ -330,10 +320,10 @@ def Menu():
dataMapper.ajouterUtilisateur(login, modtdepasse, nom, prenom, adresse, mail) dataMapper.ajouterUtilisateur(login, modtdepasse, nom, prenom, adresse, mail)
dataMapper.ajouterPersonnel(login) dataMapper.ajouterPersonnel(login)
elif (act == 3): elif (act == 3):
login = input("entrer le login de l'hadérent à supprimer:") login = input("Entrer le login de l'adhérent à supprimer : ")
dataMapper.deleteAdherent(login) dataMapper.deleteAdherent(login)
elif (act == 4): elif (act == 4):
login = input("entrer le login du membre du personnel à supprimer:") login = input("Entrer le login du membre du personnel à supprimer : ")
dataMapper.deletePersonnel(login) dataMapper.deletePersonnel(login)
elif (act == 5): elif (act == 5):
adherentDataMapper = AdherentDataMapper() adherentDataMapper = AdherentDataMapper()
...@@ -346,13 +336,13 @@ def Menu(): ...@@ -346,13 +336,13 @@ def Menu():
action=actionAdherent() action=actionAdherent()
if (action == 1): if (action == 1):
data=dataMapper.getAvailableExemplaires() data=dataMapper.getAvailableExemplaires()
affiche(data, ('Reference','Titre','Editeur','Genre')) affiche(data, ('Réf.','Titre','Editeur','Genre'))
elif (action == 2): elif (action == 2):
dataMapper= AdherentDataMapper() dataMapper= AdherentDataMapper()
data=dataMapper.getPrets(login) data=dataMapper.getPrets(login)
affiche(data, ('NbArticle','Id','Date','login')) affiche(data, ('NbArticles','Id','Date','login'))
elif(role==Roles.UNAUTHORIZED): elif(role==Roles.UNAUTHORIZED):
print("Vous n'êtes pas enregistré à la bibliothéque.") print("Vous n'êtes pas enregistré à la bibliothèque.")
elif(role==Roles.BLACKLISTED): elif(role==Roles.BLACKLISTED):
print("Vous faites partie de la liste noir de la bibliothéque.\nVous ne pouvez donc plus faire d'emprunt") print("Vous faites partie de la liste noire de la bibliothèque.\nVous ne pouvez donc plus faire d'emprunts.")
Menu() Menu()
\ No newline at end of file
...@@ -39,7 +39,7 @@ class StatistiquesDataMapper(DataMapper): ...@@ -39,7 +39,7 @@ class StatistiquesDataMapper(DataMapper):
conn = self.connect() conn = self.connect()
try: try:
cursor : psycopg2.extensions.cursor = conn.cursor() cursor : psycopg2.extensions.cursor = conn.cursor()
sql1 = "SELECT gp.titre, gp.nb_emprunt FROM GenresPopulaires gp" sql1 = "SELECT gp.genre, gp.nb_emprunt FROM GenresPopulaires gp"
cursor.execute(sql1) cursor.execute(sql1)
rows = cursor.fetchall() rows = cursor.fetchall()
return rows return rows
...@@ -49,12 +49,12 @@ class StatistiquesDataMapper(DataMapper): ...@@ -49,12 +49,12 @@ class StatistiquesDataMapper(DataMapper):
conn.close() conn.close()
# print('Genre : {0} Nombre d\'emprunts : {1}\n'.format(row[0], row[1])) # print('Genre : {0} Nombre d\'emprunts : {1}\n'.format(row[0], row[1]))
# retourne le nombre de fois qu'une ressource a été empruntée # retourne le nombre de fois qu'un genre a été empruntée
def nombreEmpruntRessourcegenre(self, genre : int) : def nombreEmpruntParGenre(self, genre : int) :
conn = self.connect() conn = self.connect()
try: try:
cursor : psycopg2.extensions.cursor = conn.cursor() cursor : psycopg2.extensions.cursor = conn.cursor()
sql1 = "SELECT gp.titre, gp.nb_emprunt FROM GenresPopulaires gp WHERE gp.genre = '{0}' GROUP BY gp.genre".format(genre) sql1 = "SELECT gp.genre, gp.nb_emprunt FROM GenresPopulaires gp WHERE gp.genre = '{0}' GROUP BY gp.genre".format(genre)
cursor.execute(sql1) cursor.execute(sql1)
ressource = cursor.fetchone() ressource = cursor.fetchone()
return ressource[1] return ressource[1]
......
CREATE VIEW Exemplaires_Disponibles AS CREATE OR REPLACE VIEW Exemplaires_Disponibles AS
SELECT DISTINCT(codeunique), titre, editeur, genre SELECT DISTINCT(codeunique), titre, editeur, genre
FROM ressource FROM ressource
JOIN exemplaire ON exemplaire.ressource = ressource.codeunique JOIN exemplaire ON exemplaire.ressource = ressource.codeunique
WHERE disponible = TRUE; WHERE disponible = TRUE;
CREATE VIEW Repartition_Emprunts AS CREATE OR REPLACE VIEW Repartition_Emprunts AS
SELECT SELECT
CASE CASE
WHEN exemplaire.ressource IN (SELECT codeunique FROM livre) THEN 'livre' WHEN exemplaire.ressource IN (SELECT codeunique FROM livre) THEN 'livre'
...@@ -70,27 +70,27 @@ CREATE OR REPLACE VIEW FilmsPopulaires AS ...@@ -70,27 +70,27 @@ CREATE OR REPLACE VIEW FilmsPopulaires AS
ORDER BY COUNT(ep.ref) DESC; ORDER BY COUNT(ep.ref) DESC;
CREATE OR REPLACE VIEW DureeMaxEmpruntParAdherent AS CREATE OR REPLACE VIEW DureeMaxEmpruntParAdherent AS
SELECT va.nom, va.login login, MAX(duree) dureeEmpruntMax SELECT va.nom, va.login login, MAX(p.duree) dureeEmpruntMax
FROM VAdherent va JOIN Pret p ON p.adherent = va.login FROM VAdherent va JOIN Pret p ON p.adherent = va.login
GROUP BY va.nom, va.login GROUP BY va.nom, va.login
ORDER BY MAX(duree) DESC; ORDER BY MAX(p.duree) DESC;
CREATE OR REPLACE VIEW DureeMoyenneEmpruntParAdherent AS CREATE OR REPLACE VIEW DureeMoyenneEmpruntParAdherent AS
SELECT va.nom nom, va.login login, AVG(duree) dureeMoyenneEmprunt SELECT va.nom nom, va.login login, AVG(p.duree) dureeMoyenneEmprunt
FROM VAdherent va JOIN Pret p ON p.adherent = va.login FROM VAdherent va JOIN Pret p ON p.adherent = va.login
GROUP BY va.nom, va.login GROUP BY va.nom, va.login
ORDER BY AVG(duree) DESC; ORDER BY AVG(p.duree) DESC;
CREATE OR REPLACE VIEW DureeMaxEmpruntParRessource AS CREATE OR REPLACE VIEW DureeMaxEmpruntParRessource AS
SELECT r.titre, r.codeUnique codeUnique, MAX(duree) dureeEmpruntMax SELECT r.titre, r.codeUnique codeUnique, MAX(p.duree) dureeEmpruntMax
FROM Ressource r JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref JOIN Pret p ON p.pretID = ep.pret FROM Ressource r JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref JOIN Pret p ON p.pretID = ep.pret
GROUP BY r.titre, r.codeUnique GROUP BY r.titre, r.codeUnique
ORDER BY MAX(duree) DESC; ORDER BY MAX(p.duree) DESC;
CREATE OR REPLACE VIEW DureeMoyenneEmpruntParRessource AS CREATE OR REPLACE VIEW DureeMoyenneEmpruntParRessource AS
SELECT r.titre, r.codeUnique codeUnique, AVG(duree) dureeMoyenneEmprunt SELECT r.titre, r.codeUnique codeUnique, AVG(p.duree) dureeMoyenneEmprunt
FROM Ressource r JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref JOIN Pret p ON p.pretID = ep.pret FROM Ressource r JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref JOIN Pret p ON p.pretID = ep.pret
GROUP BY r.titre, r.codeUnique GROUP BY r.titre, r.codeUnique
ORDER BY AVG(duree) DESC; ORDER BY AVG(p.duree) DESC;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment