Pb avec un SUM + CASE [Résolu/Fermé]

Signaler
Messages postés
109
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
22 janvier 2020
-
baladur13
Messages postés
39818
Date d'inscription
mercredi 11 avril 2007
Statut
Modérateur
Dernière intervention
2 avril 2020
-
Bonjour,

J'ai une fonction dans laquelle je voudrais calculer plusieurs totaux avec des conditions.
Voici ma requête :
CURSOR liste_elements (startstring varchar) IS
SELECT societe,etabli,matric,nudosp,identite,SUM(MONSAL + MONPAT) SOMME1, SUM(KFB2) SOMME2 FROM
(
SELECT CASE
WHEN a.etabli like '955%' THEN a.etabli
WHEN a.etabli like '956%' THEN a.etabli
ELSE substr(a.etabli,1,3)
END SOCIETE,a.etabli,a.matric,a.nudosp,
RTRIM(c.nomuse)||' '||RTRIM(c.prenom) IDENTITE,
CASE
WHEN SUBSTR(a.perpai,3) < 201305 and b.codrub in ('FKE','FKJ')
THEN -25*b.monsal
WHEN SUBSTR(a.perpai,3) > 201305 and b.codrub in ('FKE','FKJ')
THEN 25*b.monsal
END MONSAL,
CASE
WHEN SUBSTR(a.perpai,3) < 201305 and b.codrub in ('FKE','FKJ')
THEN -25*b.monpat
WHEN SUBSTR(a.perpai,3) > 201305 and b.codrub in ('FKE','FKJ')
THEN 25*b.monpat
END MONPAT,
CASE
WHEN b.codrub ='FKB'
THEN - 25*b.monsal
ELSE 0
END AS KFB2
FROM zx37 a, zx8k b, zx0m d, zy00 c
WHERE a.nudoss=b.nudoss and a.nudoss=d.nudoss AND a.matric=c.matcle
AND a.typaie = 'F'
AND b.perpai = startstring
AND b.codrub in ('FKE','FKJ','FKB')
AND d.natcon not in ('SE','EP','E2')
AND a.matric =3002457
)
GROUP BY societe,etabli,matric,nudosp,identite
ORDER BY societe,etabli,matric,nudosp,identite;

voici les données à totaliser en table :

COD MONSAL MONPAT
--- ---------- ----------
FKB 690 0
FKE 0 -80



Voici mon résultat :

COLUMN_VALUE
--------------------------------------------------------------------------------
"=""100""";"=""100001 """;"=""3002457 """;5;nom prenom;2000;19250
"=""100""";Total = 100001 ;;;;2000;19250;1

La premiere somme à 2000 est bonne.
Dans la deuxieme je devrais retrouver 17250 au lieu des 19250 (19250 correspondant à la somme (690+ 80) *25).
j'ai l'impression que ma condition "WHEN b.codrub ='FKB'' n'est pas prise en compte.

Quelqu'un aurait une idée ?

Merci d'avance.

1 réponse

Messages postés
109
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
22 janvier 2020

Bonjour,

le requête fonctionne finalement correctement.
je souhaiterai clôturer cette question mais je n'ai pas accès au "Résolu", si quelqu'un peut faire quelque chose merci d'avance.
baladur13
Messages postés
39818
Date d'inscription
mercredi 11 avril 2007
Statut
Modérateur
Dernière intervention
2 avril 2020
6 877
JsuisNul
Messages postés
109
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
22 janvier 2020

Merci pour le lien mais c'est justement le "marquer Résolu" qui n'apparaissait pas...et qui est la maintenant
merci quand même.
baladur13
Messages postés
39818
Date d'inscription
mercredi 11 avril 2007
Statut
Modérateur
Dernière intervention
2 avril 2020
6 877
Le lien ne peut apparaitre que si une réponse est donnée..
cordialement.