Requête complexe
Posté : 02 sept. 2009, 09:45
Bonjour à tous,
Je suis actuellement bloqué sur une requête, et je cherche un peu d'aide ...
J'ai 2 tables :
t_produit
Designation_produit
Quantité
t_commandes
Designation_produit
Quantité
Date_de_livraison
Date_de_reception
En fait, j'aimerais une requête que me fasse un était des stocks, c'est à dire :
- Affiche une ligne pour chaque produit, avec son nom, sa quantité en stock, sa quantité commandé, et sa date_de_livraison.
- La quantité commandé affichée est la somme de la quantité qui arrive le jour de livraison (si plusieurs commande arrive un même jour)
- La date de livraison doit être la plus récente ( MIN(date_de_livraison) ) car il peut avoir plusieurs commande pour un produit.
- MAIS il ne doit pas prendre la commande si la date de réception est remplie (la date de reception peut être différente de la date de livraison).
Voila, cela me parait quelque peu complexe ...
Je suis arrivé à faire ça pour le moment :
Voila, si quelqu'un saurait m'aider !
Cordialement,
Tsoas.
Je suis actuellement bloqué sur une requête, et je cherche un peu d'aide ...
J'ai 2 tables :
t_produit
Designation_produit
Quantité
t_commandes
Designation_produit
Quantité
Date_de_livraison
Date_de_reception
En fait, j'aimerais une requête que me fasse un était des stocks, c'est à dire :
- Affiche une ligne pour chaque produit, avec son nom, sa quantité en stock, sa quantité commandé, et sa date_de_livraison.
- La quantité commandé affichée est la somme de la quantité qui arrive le jour de livraison (si plusieurs commande arrive un même jour)
- La date de livraison doit être la plus récente ( MIN(date_de_livraison) ) car il peut avoir plusieurs commande pour un produit.
- MAIS il ne doit pas prendre la commande si la date de réception est remplie (la date de reception peut être différente de la date de livraison).
Voila, cela me parait quelque peu complexe ...
Je suis arrivé à faire ça pour le moment :
SELECT prd.Designation_produit, prd.Quantité, SUM(cmd.Quantité), cmd.Date_de_livraison
FROM t_produits AS prd INNER JOIN t_commandes AS cmd ON prd.nom_produit = cmd.nom_produit
WHERE EXISTS
( SELECT 1
FROM t_commandes AS lst
WHERE lst.nom_produit = cmd.nom_produit
HAVING MIN(lst.Date_de_livraison) = cmd.Date_de_livraison
)
GROUP BY prd.designation_produit, prd.Quantité, cmd.Date_de_livraison;
;
Le soucis de ma commande : il ne gère pas la date de livraison vide, mais surtout, si il n'y a pas de commande en cours pour un produit, il ne s'affiche pas ...Voila, si quelqu'un saurait m'aider !
Cordialement,
Tsoas.