Bonjour à tous,

J'ai un petit problème dans une procédure qui insére dans une tables le résultat d'une grosse requête. Dans un premier temps je fais plusieurs union pour récupérer les enregistrement que je veux, puis je dois faire un update sur certains enregistrements et c'est là où ça bug...
En fait après tous les unions, je dois faire une soustraction de qte_fdm - qte_debut - (les valeurs recherchées ds mon select). Or je n'arrive pas a recuperer les bonnes valeurs dans le select. Les valeurs qte_fdm et qte_debut sont bonnes, c'est la recherche des enr dans le select qui cloche.

C'est un peu compliquer d'expliquer tous les champs, donc j'imagine qu'il va etre difficile pour vous de comprendre cette requête, cependant si vous voyez un truc qui cloche dans le select de mon update je suis preneur.

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
 
/* --- première partie avec les unions */
 
-- Upadte des qte_mvt
SET qte_mvt=(qte_fdm)-(qte_debut)-
ISNULL((
 SELECT SUM(qte_mvt) FROM FAC_0101_STK FAC 
 WHERE  FAC.bu_dest <> FAC_0101_STK.site_bu
 AND FAC.aa_cpta = FAC_0101_STK.aa_cpta 
 AND FAC.mm_cpta=FAC_0101_STK.mm_cpta
 AND FAC.matiere = FAC_0101_STK.matiere
 AND FAC.stock = FAC_0101_STK.stock 
 AND FAC.usine = FAC_0101_STK.usine
 AND FAC.site_bu = FAC_0101_STK.site_bu
 ),0)
WHERE site_bu=bu_dest and stock <>'00'
En gros je dois comparer les lignes entre elles, si une ligne ne remplit pas les contions du select et du where on update pas la qte_mvt, mais malheureusement aucun enregistrement n'est updaté.

Merci pour votre aide.