Forum - Questions générale - Sujet n°327

[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Questions générale - Questions générale


clos par  le // : :  Sujet n° 327  Calcul sur 2 requêtes

le 17/02/2010 : 18:10
par Marc

Anonyme

visiteur

Bonjour,

J'ai dans une T_commande les champs Désignation,Qté servie,Qté retour

J'ai créer une requête qui fait la somme des qté servie et retour pour chaque désignation

dans une autre T_réappro j'ai les champs Désignation,Qté reçue

J'ai créer une requête qui fait la somme des qté recue

Comment je peux faire pour calculer la différence de qté par désignation ,ce qui me ferait mon stock

Exemple 1ere requête Savon somme qté servie=25 somme qté retour=10 Expr1:[somme qté servie]-[somme qté retour] soit 15

Exemple 2eme requête Savon somme qté reçue = 50

Ce que je cherche c'est comment trouver la qté 50+15=65

Merci pour ton aide

Marc

Ecrire à Marc  sujet clos  Haut
Réponse n° 1
--------
le 17/02/2010 : 22:01
par 3Stone

Anonyme

Administrateur

Bonjour,
 
Citation :

J'ai dans une T_commande les champs Désignation,Qté servie,Qté retour

 
Le problème vient justement de cette organisation.

Une table T_Mouvements avec les champs ID, TypeMouvement, Origine, Quantité, etc. et une table T_TypeMouvement serait plus approprié.

Les types de mouvements sont alors "vente", "achat", "reprise", etc.

La somme des ventes, achats, reprises, etc. devient alors très simple. Tout comme le calcul du stock qui n'est plus qu'une simple addition.

Cordialement,
Pierre(3stone)
  clos par  le // : :  Haut
Réponse n° 2
--------
le 18/02/2010 : 12:07
par Marc

Anonyme

visiteur

Bonjour,

En fait l'oganisation de ma base je l'ai faite pour gérer des bons de commandes , retours , et d'achats c'était le but principal.

Maintenant,comme je change d'emplacement dans le batiment je'nai plus le visus

sur le stock , c'est pour ça que je cherche un moyen de calculer mon stock en fonction de ce que j'ai déja créer , j'ai pensé balancer les données dont j'ai besoin dans une nouvelle table et pouvour calculer aprés ,mais je risque de faire des doublons et tout sera faux

  clos par  le // : :  Haut
Réponse n° 3
--------
le 18/02/2010 : 13:49
par 3Stone

Anonyme

Administrateur

Bonjour,
 
Citation : Marc

l'oganisation de ma base je l'ai faite pour gérer des bons de commandes , retours , et d'achats

 
Peu importe le but de la base, on doit éviter de calculer entre les champs d'un enregistrement. Cela devrait se faire sur les enregistrements.
Commandes, retours et achats sont une seule et même chose, seul le sens du mouvement diffère. Ce mouvement est soit positif ou négatif.

Avec la structure actuelle, il faut passer par une requête union pour linéariser les valeurs recherchées:

Select [Champ1] From LaTable UNION Select [Champ2] From LaTable;
Cela, juste pour arriver à une disposition des valeurs permettant le traitement recherché. Cela fonctionne de façon naturelle lorsque l'organisation des tables est faite de façon correcte.
Les valeurs (entrées, sorties, retours... positives, négatives et positives) sont rangées dans un seul champ et une simple requête ramène tout ce que l'on souhaite, en adaptant simplement la clause Where de la requête.

L'inconvéniant majeur des erreurs de conception est qu'ils empêchent toute évolution de la base, ou alors au prix d'une usine à gaz. Si pas encore fait, une lecture attentive de cet article devrait apporter bien des réponses.

Cordialement,
Pierre(3stone)
  clos par  le // : :  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut