Comment faire la synthèse des mouvements entrées et sortie stock

Résolu
Eric -  
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour chers tous.
J'ai un fichiers access qui contient la table "mouvements". Cette table retrace les mouvement des entrés et des sorties. Ma question : comment faire une requête qui peut simplement synthétiser le tout? C'est-à-dire pour chaque produit son total des entrées et son total des sortie. Que ça fonctionne correctement même si on ajoute des nouveaux articles. Merci d'avance.
Voici mon fichier ci-joint.
https://www.cjoint.com/c/JJBipxAbkAd
A voir également:

3 réponses

RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
Bonjour,

tu peux faire une requête avec un regroupement sur le produit et le type de mouvement.
Tu auras ainsi une ligne par produit et type de mouvement et la somme (une ligne somme des entrées MANGUE et une ligne somme des sorties MANGUE).
Dans ton cas ça sera :
SELECT produits.Designation, Mouvements.TypeMov, Sum(Mouvements.Qtecommande) AS SommeDeQtecommande
FROM produits INNER JOIN Mouvements ON produits.IdProduit = Mouvements.IdProduit
GROUP BY produits.Designation, Mouvements.TypeMov;


Je pense qu'il serait peut-être pas mal du coup de faire une requête analyse croisée, avec pour chaque ligne produit, une colonne somme entrées et une colonne somme sorties (une ligne MANGUE avec 1 colonne entrée et 1 colonne sorties) :
TRANSFORM Sum(Mouvements.Qtecommande) AS SommeDeQtecommande
SELECT produits.Designation
FROM produits INNER JOIN Mouvements ON produits.IdProduit = Mouvements.IdProduit
GROUP BY produits.Designation
PIVOT Mouvements.TypeMov;




A+
0
Eric
 
Merci beaucoup. Ton code a très bien marché.
Alors que faire si je veux entrer une date de début et de et une datefin ( je veux créer un "txtdatedebut" et "txtdatefin" j'ai un champs "datemov") Merci a toi et merci a tous
0
Castours
 
bonjour
pour connaitre le stock, dans une requete il faut faire la somme des entrées moins la somme des sorties.
0
Eric
 
Merci castour pour cette précision
0
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
Pour mettre une condition (WHERE) sur ton champ date utilise BETWEEN dans l'instruction sql.

Tes txtdatedebut et fin seraient j'imagine sur un formulaire ?

Alors fais comme cela (en adaptant les noms du form et des txtbox)
TRANSFORM Sum(Mouvements.Qtecommande) AS SommeDeQtecommande
SELECT produits.Designation
FROM produits INNER JOIN Mouvements ON produits.IdProduit = Mouvements.IdProduit
WHERE Mouvements.DateMov Between forms!formulaireSaisie!txtdatedebut And forms!formulaireSaisie!txtdatefin
GROUP BY produits.Designation
PIVOT Mouvements.TypeMov;


A+
0