1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Questions générale
Sujet n° 327 |
Calcul sur 2 requêtes |
le 17/02/2010 : 18:10 par Marc
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 |
|
|
Réponse n° 1 -------- le 17/02/2010 : 22:01 par 3Stone
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) |
|
|
Réponse n° 2 -------- le 18/02/2010 : 12:07 par Marc
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 |
|
|
Réponse n° 3 -------- le 18/02/2010 : 13:49 par 3Stone
Administrateur
|
Bonjour, Citation : Marcl'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) |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|