Bonjour ou bonsoir à toutes et tous,
J’ai besoin d’aide pour un exercice noté que je dois faire en python/sql (je suis débutante). Voici l’énoncé :
Exercice :
Ecrire un programme Python présentant le bilan en fonction des informations données par l’utilisateur. Par exemple, si les utilisateurs veulent le bilan concernant la vente de chaque mois ci-dessus, ils peuvent préciser les informations comme la table ‘time’ et l’attribut ‘month’ à l’entrée du programme et le programme retourne le résultat comme la suite :
Unités vendues de month ( 1 ) est 2233 Unités vendues de month ( 2 ) est 1712 Unités vendues de month ( 3 ) est 1972 Unités vendues de month ( 4 ) est 2230 Unités vendues de month ( 5 ) est 2250 Unités vendues de month ( 6 ) est 2108
Si les utilisateurs donnent les informations comme ‘geo’ et ‘dept’, le programme retourne le bilan concernant le vente de chaque département comme :
Unités vendues de dept ( 38 ) est 3008 Unités vendues de dept ( 69 ) est 2988 Unités vendues de dept ( 75 ) est 3482 Unités vendues de dept ( 95 ) est 3027
Et voici mon programme :
import psycopg2
try :
connection = psycopg2.connect(user = "etudiant",password = "*",host ="localhost",database = "db2020etudiant")
cursor = connection.cursor()
choix = int(input("Que souhaitez-vous visualiser ? : \n\t 1-Le bilan par mois (time/month) \n\t 2-Le bilan par département (geo/dept) \n Veuillez saisir votre choix (time, month, geo ou dept). \n"))
If choix == 1 :
requete = "SELECT sales, SUM(units) from sales, time WHERE sales.time_id = time.time_id GROUP BY month ORDER by month"
cursor.execute(requete)
records = cursor.fetchall()
for row in records :
print ("Unités vendues par mois", row[0], "est", row[1])
If choix == 2 :
requete = "SELECT dept, SUM(units) from geo, sales WHERE geo.geo_id = time.time_id GROUP BY dept ORDER by dept"
cursor.execute(requete)
records = cursor.fetchall()
for row in records :
print ("Unités vendues par département", row[0], "est", row[1])
except (Exception, psycopg2.Error) as error :
print ("Error while fetching data from PostgreSQL", error)
finally :
if(connection):
cursor.close()
connection.close()
print("PostgreSQL connection is closed")
Le problème c’est que je ne sais pas comment faire pour que lorsque l’utilisateur tape "time", "month", "geo" ou "dept" le choix 1 ou 2 s’affiche respectivement.
Mon professeur nous a donné cet exemple (avec tablename) comme point de départ :
import psycopg2
tablename = input("Donner le nom de table :")
try :
connection = psycopg2.connect(user = "etudiant",password = "A135792468*",host ="localhost",database = "db2020etudiant")
cursor = connection.cursor()
Query = "SELECT * FROM " + tablename
Sauf que voilà, je ne vois pas comment je pourrais faire pour intégrer cela à mon programme. J’espère avoir été claire. Merci pour votre aide !