Bonjour,
J'ai une requête assez difficile que je n'arrive pas à mettre au point, je me permets donc de solliciter votre aide.
J'ai 2 tables:
1 table "REPAS" et une table "LIGNE_COMMANDE"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 REPAS( id_repas int, nom_repas varchar, prix_normal float, prix_demi_portion float)Exemple d'insertion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 LIGNE_COMMANDE( id_ligne_commande int, id_repas (fk) int, nbre_fois_repas_commander int, demi_portion bool)
Le but de ma requête serait qu'elle retourne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO REPAS VALUES (1,'steak',10,8) INSERT INTO LIGNE_COMMANDE VALUES(1,1,5,FALSE); INSERT INTO LIGNE_COMMANDE VALUES(2,1,3,TRUE);
- la somme du nombre de repas vendus au prix "normal", donc où le champ "demi_portion" = FALSE
- la somme du nombre de repas vendus au prix"demi_portion", donc où le champ "demi_portion" = TRUE
- la somme en francs des repas vendus au prix "normal", donc où le champ "demi_portion" = FALSE
- la somme en francs des repas vendus au prix"demi_portion",donc où le champ "demi_portion" = TRUE
J'ai essayé pas mal de choses : procédure(fonction), sous-requêtes, mais sans grand résultat...
J'arrive à calculer les sommes, mais en faisant 2 requêtes, une pour calculer les repas "normaux" et une autre pour calculer les repas "demi-portions", j'aimerais optimiser en une seule requête.
Cela doit donner quelquechose du style, sans se préoccuper du "demi-portion" ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT nom_repas, SUM(nbre_fois_repas_commander) AS nbrecommande, (SUM(nbre_fois_repas_commander) * prix_normal) AS sommeArgent FROM ligne_commande, repas WHERE ligne_commande.id_repas = repas.id_repas
Est-ce que quelqu'un aurait une idée ??
Merci d'avance
Partager