Bonjour,
actuellement en stage d'informatique de deuxième année de DUT, j'ai une requête qui me pose problème. Je ne pense pas que le problème soit compliqué mais je tourne en rond et je viens donc vous demander un peu d'aide !
Je vous détaille le problème :
J'ai trois tables T_Piece(NomPièce, StockMiniPiece), T_PieceEntree(NomPiece, DateEntree, QuantiteAchat, PrixAchat), et T_PieceSortie(NomPiece, DateSortie, QuantiteSortie)
J'ai un formulaire qui me permet de rentrer les pièces ainsi que leurs entrées et sorties, avec de la mise en forme conditionnelle qui met en avant les pièces à commander tout ça...
Le problème est que j'ai besoin de créer un état qui me calcule le stock par pièce, et donc qui sélectionne seulement les pièces dont ce stock est inferieur à StockMinimum, pour pouvoir imprimer toutes les pièces à commander.
Le dernier code que j'ai essayé, et qui me semble être le meilleur malgré son non fonctionnement est le suivant :
Le problème est que, si j'ai plusieurs lignes dans ma table, il va les additionner une fois de trop
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT T_Piece.NomPiece, T_Piece.StockMiniPiece, Sum([QuantiteAchat])-Sum([QuantiteSortie]) AS Stock FROM (T_Piece INNER JOIN T_PieceEntree ON T_Piece.NomPiece = T_PieceEntree.NomPiece) INNER JOIN T_PieceSortie ON T_Piece.NomPiece = T_PieceSortie.NomPiece GROUP BY T_Piece.NomPiece, T_Piece.StockMiniPiece HAVING (((Sum([QuantiteAchat])-Sum([QuantiteSortie]))<=[StockMiniPiece]));
Un exemple pour me faire mieux comprendre :
Si PieceNum1 a 20 entrées à la date 1, et 10 entrées à la date 2
Si elle a également 5 sorties à la date 3,
je me retrouve avec un stock de... 20 car l'ordinateur a fait (20 + 10 - 5 - 5) = 20, car la ligne des sorties a été comptée autant de fois qu'il y a d'entrées, c'est à dire 2 fois ici...
Cela fonctionne donc pour 1 entrée et 1 sortie, mais je ne vous dis pas quand le nombre d'entrées et de sorties commence à être important...
Enfin je pense que ma requête est, de toute façon fausse, donc je ne sais pas si c'est très utile que je la détaille plus, mais tout ça pour vous dire que j'ai cherché et que je n'y arrive pas !
Je vous demande donc de l'aide car je ne sais pas quelle requête utiliser !
Merci d'avance !
Kiiwy
Partager