Bonjour,
Je sollicite votre aide car depuis quelques jours je bloque sur un problème "scolaire".
En effet, étant en Master, je dois rendre quelques requêtes. Je n'ai pas réellement eu de problèmes jusque là mais je bloque sur une demande :
"Les quantités commandées sont compatibles avec les quantités en stock et les quantités max", donc lorsqu'une commande est ajouté la qte commandé d'un produit + la quantité en stock d'un produit doit être inférieur ou égale à la quantité max stockable du produit.
Je cherche à créer une contrainte du type : (CHECK ((Concerner.QteCom+Stocker.QteStock)<=Stocker.QteMax).
J'ai essayé de créer une fonction (que je ne maitrise absolument pas), et bien sûr ça ne marche pas :
Si une âme charitable peux m'expliquer comment résoudre ce problème, j'en serais très heureux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 CREATE FUNCTION fct_Lim_QteComCon (@QteCom Number(4)) RETURNS Number AS BEGIN IF ( SELECT Con.QteCom+S.QteSock FROM Concerner Con, Stocker S, Produit P WHERE Con.ProdNum=P.ProdNum AND P.ProdNum=S.ProdNum AND C.ComNum=Con.ComNum)>( SELECT S.QteMax FROM Concerner Con, Stocker S, Produit P WHERE Con.ProdNum=P.ProdNum AND P.ProdNum=S.ProdNum AND C.ComNum=Con.ComNum) Return 'False' Return 'True' END; ALTER TABLE Concerner Add Constraint Lim_QteCom CHECK (fct_Lim_QteComCon(QteCom)='true');
Merci par avance à ceux qui pourront m'aider.
Cordialement.
RiRioudess
PS : Merci à Winjerome pour l'ajout des balise Code !!!
Partager