Commit 54f277b8 authored by Marine Marsal's avatar Marine Marsal
Browse files

Update VIEWS.sql mise à jour vues

parent 399b9b27
......@@ -13,85 +13,84 @@ CREATE VIEW Repartition_Emprunts AS
FROM exemplaire
JOIN exemplairepret ON exemplaire.ref = exemplairepret.ref
GROUP BY "category";
CREATE OR REPLACE VIEW VLivre AS
SELECT r.codeunique codeunique, r.titre titre, r.dateapparition dateapparition, r.editeur editeur, r.genre genre, r.codeclassification codeclassification, l.isbn isbn, l.resume resume, l.langue langue
FROM Ressource r JOIN Livre l ON l.codeUnique = r.codeUnique;
CREATE OR REPLACE VIEW VOeuvreMusicale AS
SELECT r.codeunique codeunique, r.titre titre, r.dateapparition dateapparition, r.editeur editeur, r.genre genre, r.codeclassification codeclassification, om.longueur longueur
FROM OeuvreMusicale om JOIN Ressource r ON om.codeUnique = r.codeUnique;
CREATE OR REPLACE VIEW VFilm AS
SELECT r.codeunique codeunique, r.titre titre, r.dateapparition dateapparition, r.editeur editeur, r.genre genre, r.codeclassification codeclassification, f.longueur longueur, f.synopsis synopsis
FROM Film f JOIN Ressource r ON f.codeUnique = r.codeUnique;
CREATE OR REPLACE VIEW VAdherent AS
SELECT u.login login, u.motdepasse motdepasse, u.nom nom, u.prenom prenom, u.adresse adresse, u.mail mail, a.numcarte numcarte, a.datenaissance datenaissance, a.numtel numtel, a.dateadhesion dateadhesion, a.blacklisted blacklisted
FROM Utilisateur u JOIN Adherent a ON u.login = a.login;
CREATE OR REPLACE VIEW VPersonnel AS
SELECT u.login login, u.motdepasse motdepasse, u.nom nom, u.prenom prenom, u.adresse adresse, u.mail mail
FROM Utilisateur u JOIN Personnel p ON u.login = p.login;
CREATE OR REPLACE VIEW RessourcesPopulaires AS
SELECT r.titre, COUNT(ep.ref) nb_emprunt
SELECT r.titre titre, r.codeUnique codeUnique, COUNT(ep.ref) nb_emprunt
FROM Ressource r JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY r.titre
GROUP BY r.titre, r.codeUnique
HAVING COUNT(ep.ref) > 2
ORDER BY COUNT(ep.ref) DESC;
CREATE OR REPLACE VIEW GenresPopulaires AS
SELECT r.genre, COUNT(ep.ref) nb_emprunt
SELECT r.genre genre, COUNT(ep.ref) nb_emprunt
FROM Ressource r JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY r.genre
HAVING COUNT(ep.ref) > 2
ORDER BY COUNT(ep.ref) DESC;
CREATE OR REPLACE VIEW LivresPopulaire AS
SELECT r.titre, COUNT(ep.ref) nb_emprunt
FROM Livre l JOIN Ressource r ON l.codeUnique = r.codeUnique JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY r.titre
SELECT vl.titre titre, vl.codeUnique codeUnique, COUNT(ep.ref) nb_emprunt
FROM VLivre vl JOIN Exemplaire e ON e.ressource = vl.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY vl.titre, vl.codeUnique
HAVING COUNT(ep.ref) > 2
ORDER BY COUNT(ep.ref) DESC;
CREATE OR REPLACE VIEW OeuvresMusicalesPopulaire AS
SELECT r.titre, COUNT(ep.ref) nb_emprunt
FROM OeuvreMusicale om JOIN Ressource r ON om.codeUnique = r.codeUnique JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY r.titre
SELECT vom.titre titre, vom.codeUnique codeUnique, COUNT(ep.ref) nb_emprunt
FROM VOeuvreMusicale vom JOIN Exemplaire e ON e.ressource = vom.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY vom.titre, vom.codeUnique
HAVING COUNT(ep.ref) > 2
ORDER BY COUNT(ep.ref) DESC;
CREATE OR REPLACE VIEW FilmsPopulaires AS
SELECT r.titre, COUNT(ep.ref) nb_emprunt
FROM Film f JOIN Ressource r ON f.codeUnique = r.codeUnique JOIN Exemplaire e ON e.ressource = r.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY r.titre
SELECT vf.titre titre, vf.codeUnique codeUnique, COUNT(ep.ref) nb_emprunt
FROM VFilm vf JOIN Exemplaire e ON e.ressource = vf.codeUnique JOIN ExemplairePret ep ON ep.ref = e.ref
GROUP BY vf.titre, vf.codeUnique
HAVING COUNT(ep.ref) > 2
ORDER BY COUNT(ep.ref) DESC;
CREATE OR REPLACE VIEW DureeMaxEmpruntParAdherent AS
SELECT u.nom, MAX(duree) dureeEmpruntMax
FROM Adherent a JOIN Pret p ON p.adherent = a.login JOIN Utilisateur u ON u.login = a.login
GROUP BY u.nom
SELECT va.nom, va.login login, MAX(duree) dureeEmpruntMax
FROM VAdherent va JOIN Pret p ON p.adherent = va.login
GROUP BY va.nom, va.login
ORDER BY MAX(duree) DESC;
CREATE OR REPLACE VIEW DureeMoyenneEmpruntParAdherent AS
SELECT u.nom, AVG(duree) dureeMoyenneEmprunt
FROM Adherent a JOIN Pret p ON p.adherent = a.login JOIN Utilisateur u ON u.login = a.login
GROUP BY u.nom
SELECT va.nom nom, va.login login, AVG(duree) dureeMoyenneEmprunt
FROM VAdherent va JOIN Pret p ON p.adherent = va.login
GROUP BY va.nom, va.login
ORDER BY AVG(duree) DESC;
CREATE OR REPLACE VIEW DureeMaxEmpruntParRessource AS
SELECT r.titre, MAX(duree) dureeEmpruntMax
SELECT r.titre, r.codeUnique codeUnique, MAX(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
GROUP BY r.titre
GROUP BY r.titre, r.codeUnique
ORDER BY MAX(duree) DESC;
CREATE OR REPLACE VIEW DureeMoyenneEmpruntParRessource AS
SELECT r.titre, AVG(duree) dureeMoyenneEmprunt
SELECT r.titre, r.codeUnique codeUnique, AVG(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
GROUP BY r.titre
GROUP BY r.titre, r.codeUnique
ORDER BY AVG(duree) DESC;
CREATE OR REPLACE VIEW VLivre AS
SELECT r.codeunique codeunique, r.titre titre, r.dateapparition dateapparition, r.editeur editeur, r.genre genre, r.codeclassification codeclassification, l.isbn isbn, l.resume resume, l.langue langue
FROM Ressource r JOIN Livre l ON l.codeUnique = r.codeUnique;
CREATE OR REPLACE VIEW VOeuvreMusicale AS
SELECT r.codeunique codeunique, r.titre titre, r.dateapparition dateapparition, r.editeur editeur, r.genre genre, r.codeclassification codeclassification, om.longueur longueur
FROM OeuvreMusicale om JOIN Ressource r ON om.codeUnique = r.codeUnique;
CREATE OR REPLACE VIEW VFilm AS
SELECT r.codeunique codeunique, r.titre titre, r.dateapparition dateapparition, r.editeur editeur, r.genre genre, r.codeclassification codeclassification, f.longueur longueur, f.synopsis synopsis
FROM Film f JOIN Ressource r ON f.codeUnique = r.codeUnique;
CREATE OR REPLACE VIEW VFilm AS
SELECT r.codeunique codeunique, r.titre titre, r.dateapparition dateapparition, r.editeur editeur, r.genre genre, r.codeclassification codeclassification, f.longueur longueur, f.synopsis synopsis
FROM Film f JOIN Ressource r ON f.codeUnique = r.codeUnique;
CREATE OR REPLACE VIEW VAdherent AS
SELECT u.login login, u.motdepasse motdepasse, u.nom nom, u.prenom prenom, u.adresse adresse, u.mail mail, a.numcarte numcarte, a.datenaissance datenaissance, a.numtel numtel, a.dateadhesion dateadhesion, a.blacklisted blacklisted
FROM Utilisateur u JOIN Adherent a ON u.login = a.login;
CREATE OR REPLACE VIEW VPersonnel AS
SELECT u.login login, u.motdepasse motdepasse, u.nom nom, u.prenom prenom, u.adresse adresse, u.mail mail
FROM Utilisateur u JOIN Personnel p ON u.login = p.login;
Supports Markdown
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