Commit 29e2e185 authored by Oceane Bordeau's avatar Oceane Bordeau
Browse files

requetes merged

parents b49bbb13 685eab57
......@@ -11,7 +11,7 @@ Emprunte(#IDO=>Oeuvre_louvre, #musee=>Musee_ext, debut: date, fin: date)
<br/>
Prestataire(#IDP: integer, raison_sociale: varchar)
<br/>
Restaurer(#prestataire=>Prestataire, #oeuvre=>Oeuvre_louvre, #date: date, type: varchar, montant: integer)
Restaurer(#prestataire=>Prestataire, #oeuvre=>Oeuvre_louvre, #fin: date, type: varchar, montant: integer)
<br/>
Expo_perm(#nom: varchar)
<br/>
......
......@@ -180,6 +180,74 @@ def liste_oeuvre_pretees():
raw = cur.fetchone()
def liste_oeuvres_absentes():
cur = conn.cursor()
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 :")
while raw:
print(
f"Nom de l'exposition : {raw[0]} Nombre d'oeuvres absentes : {raw[1]}")
print()
raw = cur.fetchone()
def liste_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 :")
while raw:
print(f"Oeuvre numero : {raw[0]} :")
print(f" Exposition asociée : {raw[1]}")
print(f" Date de rendu : {raw[2]}")
print()
raw = cur.fetchone()
def liste_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()
while raw:
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()
while raw:
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()
def temp_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")
choice = int(input("\nEntrer Votre choix\n"))
# requetes selection
if choice == 1:
liste_guide()
......@@ -433,6 +502,15 @@ def menu():
if choice == 9:
informations_oeuvres()
if choice == 10:
liste_oeuvres_absentes()
if choice == 11:
liste_oeuvre_empruntees()
if choice == 12:
liste_oeuvre_periode()
if choice == 13:
nb_creneaux()
......
......@@ -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.
```
SELECT * FROM Oeuvre_louvre;
SELECT * FROM Oeuvre_louvre
WHERE date_crea < 1800 and date_crea > 1700;
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 < 1800 and date_crea > 1700;
```
(Version en 2 requêtes)
......
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