Besoin d'aide requete SQL

Résolu
Bonjour,
je ne trouve pas la requete qui correspond a mon besoin,
je dois creer un site d'un traiteur de plats préparés
ma BDD se compose de la maniere suivante:

INGREDIENT(ingredient_id,ingredient_nom,ingredient_stock,ingredient_unitégestion)
COMPOSER(ingredient_id, plat_id, composer_quantité)
PLAT(plat_id, Plat_nom, plat_composition)

j'ai dit juste ce qui concerne la requete que je cherche .

donc je voudrais la requete me permettant d'obtenir la liste des plats en stock ( dont il reste suffisament d'ingredient pour les composer et savoir combien puis-je encore en faire).
MERCI !! beaucoup a celui ou celle qui pourra m'aider
Configuration: Windows XP
Firefox 2.0.0.14

4 réponses

  1. Bonjour.

    Tu as quoi, pour le moment ?
    Parce que je veux bien t'aider, mais :
    https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
    0
    1. pour le moment j'ai fait ca :

      SELECT * FROM `plat`, `composer`, `ingredient`
      WHERE `plat`.`plat_id`=`composer`.`plat_id`
      AND `composer`.`ingredient_id`=`ingredient`.`ingredient_id`
      AND `ingredient_stock`>0

      mais il me manque le fait de verifier le nb de plat que je peut encore faire avec les ingredients restant ...
      0
  2. ça fait longtemps que je n'ai pas fait du sql, je suis tentée de te donner mon idée, à toi de voir
    je crois qu'il faut créer une vue sur les ingrédients d'un même plat (plat_id, ingrédient_id, composer_quantité, ingrédient_stock) avec la quantité nécessaire (composer_quantité) et la quantité disponible en stock (ingrédient_stock)
    je ne sais plus comment on écrit, j'arrive pas à m'en rappeler désolé !
    mais avec une vue ça deverait étre facile à faire
    0
    1. Contributeur
      Salut,

      Il me semble que tu peux utiliser la fonction minumun :
      select plat.plat_nom,min(ingredient.ingredient_stock / composer.composer_quantité ) AS "Quantité" from ingredient,composer,plat
      where composer.plat_id like plat.plat_id AND ingredient.ingredient_id like composer.ingredient_id
      group by plat.plat_nom
      


      ingredient.ingredient_stock / composer.composer_quantité te donne le nombre maximum de plats que tu peux faire avec un ingrédient par plat. La fonction min est la pour s'arrêter de produire une fois que le plus petit stock est épuisé.

      Normalement ça devait aller ... (j'ai testé sur une bdd sans les relations ... ne garantie donc rien pour celles-ci :D)

      @Bientôt
      0
      1. MERCI beaucoup ! je pense que cela fonctionne et j'ai compris le fonctionnement de la requete c'est genial . merci beaucoup a tous ceux qu'ont voulu m'aider ! bonne soirée !
        0
      2. Contributeur
        @snowflakedu59mais c'est un plaisir de pouvoir aider :D

        Bonne soirée à toi aussi
        0
    2. c'est plutot, ingredient_stock>=composer_quantité, au lieu de, ingredient_stock>0
      0