Bonjour,
grâce à l'aide de certaines personnes du forum, j'ai pu créer 3 requêtes qui sont:
REQUETE 1:
REQUETE 2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 UPDATE ARTICLE SET ARTICLE.qtedansstock11 = (SELECT SUM(QtiteFabNonEntSk) FROM ETEMPS e, LCTE l WHERE l.codearticle=ARTICLE.codearticle AND e.CodeLanctimprod=l.CodeLancement AND e.CodePoste IN ('MOUA','MOUB','MOUC','MOUP','MOUQ')) WHERE EXISTS (SELECT 1 FROM ETEMPS e, LCTE l WHERE l.codearticle=ARTICLE.codearticle AND e.CodeLanctimprod=l.CodeLancement AND e.CodePoste IN ('MOUA','MOUB','MOUC','MOUP','MOUQ'));
REQUETE 3:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UPDATE ARTICLE SET ARTICLE.qtedansstock14 = (SELECT SUM(QuantiteExpediee) FROM BDEC WHERE BDEC.codearticleprestto=ARTICLE.codearticle ) WHERE EXISTS (SELECT 1 FROM BDEC WHERE bdec.codearticleprestto=ARTICLE.codearticle );
Mon but est de mettre dans une 4ème requête: requête 1 - requête 2 - requête 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UPDATE ARTICLE SET ARTICLE.qtedansstock13 = (SELECT SUM(Quantite) FROM GPSQL.AB_REBUT_LCT WHERE GPSQL.AB_REBUT_LCT.CodeRubrique=ARTICLE.codearticle ) WHERE EXISTS (SELECT 1 FROM GPSQL.AB_REBUT_LCT WHERE GPSQL.AB_REBUT_LCT.CodeRubrique=ARTICLE.codearticle );
Cela fonctionne avec cette requête:
Le seul problème c'est que ce calcul se fait seulement si les résultats des requêtes 1, 2, 3 contiennent des valeurs différentes de 0.
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 UPDATE ARTICLE SET ARTICLE.qtedansstock15 = (SELECT SUM(QtiteFabNonEntSk) FROM ETEMPS e, LCTE l WHERE l.codearticle=ARTICLE.codearticle AND e.CodeLanctimprod=l.CodeLancement AND e.CodePoste IN ('MOUA','MOUB','MOUC','MOUP','MOUQ')) - (SELECT SUM(QuantiteExpediee) FROM BDEC WHERE BDEC.codearticleprestto=ARTICLE.codearticle ) - (SELECT SUM(Quantite) FROM GPSQL.AB_REBUT_LCT WHERE GPSQL.AB_REBUT_LCT.CodeRubrique=ARTICLE.codearticle ) WHERE EXISTS (SELECT 1 FROM ETEMPS e, LCTE l, BDEC, GPSQL.AB_REBUT_LCT WHERE l.codearticle=ARTICLE.codearticle AND e.CodeLanctimprod=l.CodeLancement AND GPSQL.AB_REBUT_LCT.CodeRubrique=ARTICLE.codearticle AND bdec.codearticleprestto=ARTICLE.codearticle AND e.CodePoste IN ('MOUA','MOUB','MOUC','MOUP','MOUQ'));
Exemple: Si ma requête 1 me retourne 10, ma requête 2: 0 et ma requête 3: 5. Mon résultat serait de 5 et non de 0 comme il l'est actuellement. J'ai vérifier pour toute ma base de données, dès que j'ai au minimum un 0 en résultat d'une de mes requêtes, le résultat final ne se fait pas. Auriez-vous une idée?
Merci.
Partager