sql="SELECT nom, COUNT(oeuvre) FROM Expo_perm JOIN Oeuvre_louvre ON Expo_perm.nom = Oeuvre_louvre.expo JOIN Restaurer ON Oeuvre_louvre.IDO = Restaurer.oeuvre JOIN Prete ON Oeuvre_louvre.IDO = Prete.IDO WHERE (Restaurer.fin > CURRENT_DATE) OR (Prete.debut < CURRENT_DATE AND Prete.fin > CURRENT_DATE) GROUP BY nom;"
cur.execute(sql)
raw=cur.fetchone()
print("Liste des oeuvre absentes du Louvres actuellement :")
whileraw:
print(
f"Nom de l'exposition : {raw[0]} Nombre d'oeuvres absentes : {raw[1]}")
print()
raw=cur.fetchone()
defliste_oeuvre_empruntees():
cur=conn.cursor()
sql="SELECT Oeuvre_ext.IDO, expo, fin FROM Emprunte JOIN Oeuvre_ext ON Emprunte.IDO = Oeuvre_ext.IDO WHERE Emprunte.debut < CURRENT_DATE AND Emprunte.fin > CURRENT_DATE ORDER BY fin;"
cur.execute(sql)
raw=cur.fetchone()
print("Liste des oeuvres actuellement empruntées par le Louvre :")
whileraw:
print(f"Oeuvre numero : {raw[0]} :")
print(f" Exposition asociée : {raw[1]}")
print(f" Date de rendu : {raw[2]}")
print()
raw=cur.fetchone()
defliste_oeuvre_periode():
debut=int(input("Entrez l'année de début de la période"))
fin=int(input("Entrez l'année de fin de la période"))
cur=conn.cursor()
sql=f"SELECT * FROM Oeuvre_louvre WHERE date_crea < {fin} and date_crea > {debut};"
print(f"Liste des oeuvres créées entre {debut} et {fin}:")
cur.execute(sql)
raw=cur.fetchone()
whileraw:
print(f"Oeuvre numero : {raw[0]} :")
print(f"Nom : {raw[1]} :")
print(f"Dimension : {raw[2]} :")
print(f"Type : {raw[3]} :")
print(f"Date de création : {raw[4]} :")
print(f"Auteur : {raw[5]} :")
print(f"Prix d'acquisition : {raw[6]} :")
print(f"Date d'acquisition : {raw[7]} :")
print(f"Exposition asociée : {raw[8]}")
print(f"Appartenance : Louvre")
print(f"Durée : indéterminée")
print()
raw=cur.fetchone()
sql=f"SELECT IDO, titre, dimensions, type, date_crea, auteur, expo, ROUND(fin - debut) FROM Oeuvre_ext JOIN Expo_temp ON Oeuvre_ext.expo = Expo_temp.nom; WHERE date_crea < {fin} and date_crea > {debut};"
print(f"Liste des oeuvres créées entre {debut} et {fin}:")
cur.execute(sql)
raw=cur.fetchone()
whileraw:
print(f"Oeuvre numero : {raw[0]} :")
print(f"Nom : {raw[1]} :")
print(f"Dimension : {raw[2]} :")
print(f"Type : {raw[3]} :")
print(f"Date de création : {raw[4]} :")
print(f"Auteur : {raw[5]} :")
print(f"Exposition asociée : {raw[6]}")
print(f"Appartenance : Autre")
print(f"Durée : {raw[7]}")
print()
raw=cur.fetchone()
deftemp_moyen_pret():
cur=conn.cursor()
sql="SELECT idm, nom, adresse, AVG(ROUND(fin - debut)) FROM Prete JOIN Musee_ext ON prete.musee = musee_ext.IDM GROUP BY idm, musee_ext adresse, nom;"
...
...
@@ -406,6 +474,7 @@ def menu():
print(" 26. Insertion d'un guide et affectation à des expositions")
@@ -95,6 +95,8 @@ Compter le nombre d'oeuvres actuellement absentes (= en prêt ou en restauration
SELECT nom, COUNT(oeuvre) FROM Expo_perm
JOIN Oeuvre_louvre ON Expo_perm.nom = Oeuvre_louvre.expo
JOIN Restaurer ON Oeuvre_louvre.IDO = Restaurer.oeuvre
JOIN Prete ON Oeuvre_louvre.IDO = Prete.IDO
WHERE (Restaurer.fin > CURRENT_DATE) OR (Prete.debut < CURRENT_DATE AND Prete.fin > CURRENT_DATE)
GROUP BY nom;
```
<> A vérifier avec plus d'inserts
...
...
@@ -104,6 +106,7 @@ Identifier de manière unique les oeuvres actuellement empruntées par le Louvre
```
SELECT Oeuvre_ext.IDO, expo, fin FROM Emprunte
JOIN Oeuvre_ext ON Emprunte.IDO = Oeuvre_ext.IDO
WHERE Emprunte.debut < CURRENT_DATE AND Emprunte.fin > CURRENT_DATE
ORDER BY fin;
```
...
...
@@ -111,10 +114,12 @@ ORDER BY fin;
Afficher les oeuvres ayant été créées à une période donnée, avec toutes leurs informations ainsi que l'identification unique, nom, si elles appartiennent ou non au Louvre, les durées éventuelles des expositions dans lesquelles elles sont/ont été/seront exposées.