2 pièce(s) jointe(s)
Instruction SQL afin de faire correspondre plusieurs tables
Bonjour,
Je vous explique un peu le problème que je rencontre actuellement sur mon projet VB de gestion de stock.
J'ai 4 tables :
- Entrée produit
- Stock
- Produit
- Commande Client
De mes 4 tables j'ai créé un Dataset "gestion_stockDataset" avec mes 4 table adapter de cette façon :
Pièce jointe 208521
Voici ma requête SQL qui va chercher les caractéristiques d'un produit :
SELECT Code_produit, Catégorie, Fournisseur
FROM produit
WHERE (Code_produit = ?)
c'est à dire que quand je rentre un produit quelconque ses caractéristiques s'affichent dans des Textbox (Résolu dans un précédent Forum)
Mon problème vient du fait que je n'arrive pas à faire correspondre la quantité ajouté (table entrée produit) avec la quantité entrée (table stock).
De la même manière avec la quantité commandee (table commande client) avec la quantité sortie (table stock)
J'ai eu l'idée de faire une jointure de ces trois tables (stock, entrée produit et commande client) :
Code:
1 2 3 4 5 6 7 8 9
| SELECT stock.Code_produit, stock.Categorie, stock.Fournisseur, stock.Quantite_entree, stock.Quantite_sortie, stock.Quantite_en_stock
FROM stock
JOIN entree_produit
ON entree_produit.Code_produit = stock.Code_produit AND entree_produit.Quantite_ajoutee = stock.Quantite_entree
JOIN commande_client
ON commande_client.Code_produit = stock.Code_produit AND commande_client.Quantite_commandee = stock.Quantite_sortie
WHERE stock.Quantite_entree = stock.Quantite_entree + entree_produit.Quantite_ajoutee
AND stock.Quantite_sortie = stock.Quantite_sortie + commande_client.Quantite_commandee
AND entree_produit.ID =(SELECT MAX(ID) FROM entree_produit entree_produit_1 WHERE (Code_produit = ?)) |
a la fin de ma requête je veut que seul les dernier enregistrement (MAX(ID)) s'ajoute dans la table stock.
D'après le générateur de requête, cette requête n'a pas de faute mais ne fonctionne donc pas.
Cette requête s'appelle FillBy :
Code:
Me.Relation_stockTableAdapter.FillBy(Me.Gestion_stockDataSet.relation_stock, ComboBox1.Text)
J'ajoute donc cette instruction dans l'évènement click d'un bouton CONSULTER.
Pièce jointe 208522
Lorsque j'enregistre une commande, le chiffre entrée dans la case quantité commandee doit donc s'ajouter à la quantité sortie de ma table stock.
Voilà donc mon problème.
Si vous avez des questions n'hésitez surtout pas à me les poser.
Je sais pas si j'ai été assez clair.
Merci d'avance pour vos réponses.