par
pjl » 11 avr. 2008, 16:43
Je m'aperçois que les requêtes utilisent MP.quantite alors que ça devrait être RC.quantite. J'imagine que MP.quantite correspond au stock de chaque magasin.
MP.quantité correspond à la quantité pour un magasin donné.
Ex : j'achète une boite de Maïzena(id = 2) dans le magasin 1 qui fait 200g et une autre dans le magasin 2 qui fait 400g, dans la table ca donne :
id magasin quantite prix
2 1 0.200 1€50
2 2 0.400 2€50
avec les requêtes, celà devrait donner :
prix moyen = ((1,5/0,2) + (2,5/0,4))/2. (ca me donne le prix moyen au kg, plus facile après pour comparer les prix en magasin).
dans la recette, j'utilise 50g de Maïzena, donc coût de l'ingrédiant dans la recette = prix moyen * 0,05.
Ensuite, je prend la somme de l'ensemble des ingrédiants pour connaître le cout moyen d'une recette.
Le but du jeux, c'est ensuite de pouvoir comparer entre une recette maison et une recette industrielle.
Là, on a la première requête qui est fausse.
Je vais regarder celà tranquillement ce soir pour corriger.
Mais à priori, je ne peux pas échapper aux sous-requêtes.
EDIT
Bon, je viens de regarder, ca donne :
Code : Tout sélectionner
SELECT RC.id_recette, SUM( RC.quantite * PP.prix ) AS cout_recette
FROM (
SELECT MP.id_produit, AVG( MP.prix / MP.quantite_article ) AS prix
FROM recettes_magasins_prix MP
GROUP BY MP.id_produit
ORDER BY NULL
) AS PP
JOIN recettes_composition RC
USING ( id_produit )
GROUP BY RC.id_recette
LIMIT 0 , 30
A vu de nez, ca semble cohérent.
Merci.
[quote="Hubert Roksor"]Je m'aperçois que les requêtes utilisent MP.quantite alors que ça devrait être RC.quantite. J'imagine que MP.quantite correspond au stock de chaque magasin.[/quote]
MP.quantité correspond à la quantité pour un magasin donné.
Ex : j'achète une boite de Maïzena(id = 2) dans le magasin 1 qui fait 200g et une autre dans le magasin 2 qui fait 400g, dans la table ca donne :
id magasin quantite prix
2 1 0.200 1€50
2 2 0.400 2€50
avec les requêtes, celà devrait donner :
prix moyen = ((1,5/0,2) + (2,5/0,4))/2. (ca me donne le prix moyen au kg, plus facile après pour comparer les prix en magasin).
dans la recette, j'utilise 50g de Maïzena, donc coût de l'ingrédiant dans la recette = prix moyen * 0,05.
Ensuite, je prend la somme de l'ensemble des ingrédiants pour connaître le cout moyen d'une recette.
Le but du jeux, c'est ensuite de pouvoir comparer entre une recette maison et une recette industrielle.
Là, on a la première requête qui est fausse.
Je vais regarder celà tranquillement ce soir pour corriger.
Mais à priori, je ne peux pas échapper aux sous-requêtes.
EDIT
Bon, je viens de regarder, ca donne :
[code]SELECT RC.id_recette, SUM( RC.quantite * PP.prix ) AS cout_recette
FROM (
SELECT MP.id_produit, AVG( MP.prix / MP.quantite_article ) AS prix
FROM recettes_magasins_prix MP
GROUP BY MP.id_produit
ORDER BY NULL
) AS PP
JOIN recettes_composition RC
USING ( id_produit )
GROUP BY RC.id_recette
LIMIT 0 , 30 [/code]
A vu de nez, ca semble cohérent.
Merci.