Requete de gestion de stock

Résolu/Fermé
hsinay Messages postés 37 Date d'inscription jeudi 15 décembre 2016 Statut Membre Dernière intervention 2 février 2017 - 15 déc. 2016 à 10:54
hsinay Messages postés 37 Date d'inscription jeudi 15 décembre 2016 Statut Membre Dernière intervention 2 février 2017 - 22 déc. 2016 à 10:34
bonjour à tous, débutant en programmation SQL ; je développe un projet de gestion de stock avec base de données acesss mes recherches m'ont permis d'avancé timidement mais surement sur mon projet jusqu'à ce jour. voila que je suis coincé à cause d'un problème qui m'empêche maintenant d'avancé. et cela fait que je perd les boules. en faite je voudrais avoir etat de stock a instant T et faire automatiquement la mise a jour . mes tables concerner sont: produit :ref produit designation categoerie
entree datentree; reflot;qtentree
sortie :date sortie;reflotqtsortie
remarque chaque refproduit admet 1 a plusieurs reflot
voila ma requete
SELECT entrée.Refproduit, entrée.Reflot, Sum(Nz(entrée.Qtentree,0)) AS Qtentree, Sum(Nz(sortie.Qtesortie,0)) AS Qtesortie, Qtentree-Qtesortie AS QPLOT
FROM entrée LEFT JOIN sortie ON (entrée.Reflot = sortie.Reflot) AND (entrée.Refproduit = sortie.Refproduit)
GROUP BY entrée.Refproduit, entrée.Reflot;
mais tjr il regroupe les entree mais les sortie nn
mais a tt proposition

1 réponse

yg_be Messages postés 22721 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
15 déc. 2016 à 19:56
Tu as des lots de produits qui sont dans ta table sortie et pas dans ta table entrée?
Que veux-tu dire exactement par "il ne regroupe pas les sorties"?
0
hsinay Messages postés 37 Date d'inscription jeudi 15 décembre 2016 Statut Membre Dernière intervention 2 février 2017
16 déc. 2016 à 10:03
bonjour yg-be
concernant les lot j'ai les lot dans les 2 tables cad dans table entree et table sortie et je vx etat de stock par rapport chaque lot
et chaque produit admet 1 a pleusieurs lot
mon code ne marche plus
par exemple si vx ajouté un nv lot que j'ai dejaa avec une nouvellle entree et sortie
la fonction sum il fait addition des entree mais les sortie il me donne des ancienne sortie il ne fais pas mise ajour
0
yg_be Messages postés 22721 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié par yg_be le 16/12/2016 à 10:25
Tu dois faire les sommes séparément dans les tables entree et sortie, puis regrouper les résultats avec le JOIN.
Le plus simple, je pense, c'est d'abord de faire deux requetes, une sur entree, une sur sortie, en faisant les sommes group by reflot, refproduit.
Et, ensuite, de faire le JOIN, mais en utilisant les deux requêtes comme source, pas les deux tables (et plus besoin, là, de group by ni de sum).
0
hsinay > yg_be Messages postés 22721 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
17 déc. 2016 à 17:13
bonjour yg-be
merci bcp pr ton aide ,maintenant il fonctionne bien mais j'ai un petit problème concernant les sortie si j'ajoute une entree avec une sortie null dans la requete stock il ne marche pas il oublie les sortie null il faut donner un 0
0
yg_be Messages postés 22721 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
17 déc. 2016 à 21:23
tu n'as rien comme total pour les sorties, au lieu de 0, c'est bien cela?
ta requête finale est environ ceci:
SELECT entrée.Refproduit, entrée.Reflot, entrée.somme, sortie.somme
FROM entrée LEFT JOIN sortie ON (entrée.Reflot = sortie.Reflot) AND (entrée.Refproduit = sortie.Refproduit) 
GROUP BY entrée.Refproduit, entrée.Reflot;
essaye de remplacer
sortie.somme 
par (plus ou moins)
iif(isnull(sortie.somme),0,sortie.somme)
0
hsinay Messages postés 37 Date d'inscription jeudi 15 décembre 2016 Statut Membre Dernière intervention 2 février 2017
18 déc. 2016 à 14:43
j'essay de faire mais j 'ai pas bien compris il faut modifier la requete sommesortie ou bien la requete stock
voila la 1 requete que je fait
SELECT e.Refproduit, e.Reflot, sumqtee-sumqtes AS Etat
FROM sumqteentree AS e LEFT JOIN sumqtesortie AS s ON (e.Reflot = s.Reflot) AND (e.Refproduit = s.Refproduit);
ca ne fonctionne pas bien il ne donne pas le resultat
voila la 2 aprés ce que j'ai compris
SELECT e.Refproduit, e.Reflot, sumqtee- iif(isnull(sumqtes ),0,sumqtee)AS Etat
FROM sumqteentree AS e LEFT JOIN sumqtesortie AS s ON (e.Reflot = s.Reflot) AND (e.Refproduit = s.Refproduit);
il fonctionne mais seulement dans le cas que j ai un bleme mais le reste il donne des 0 dans etat de stock
0