Bonjour,
C'est mon premier post, bien que j'ai toujours des solutions grâce à votre site, là je cale.
J'ai donc une GROSSE question:
Je dois calculer un montant. Ce montant est composé d'une somme de valeur de zones qui peuvent être variables
Exemple, une fois mt = zone1 + zone2 ou une autre fois mt = zone1 + zone4 +zone8 ou les zones apprtirnnent à un fichier FIC1
L'écriture littérale "zone1 + zone2" ou " zone1 + zone4 + zone8" est constituée en amont et reçue en paramètre pour alimenter :ZONE dans le DECLARE du cursor
Le but étant de renvoyer le total de la somme dans :RESULTAT au programme appelant au retour du FETCH.
Ça compile mais j'ai un sqlcode 420 (prbm de cast...) au moment du FETCH, une idée? Je joins ci-dessous mon code
Les zones sont définies en 9,2 et le résultat en 11.2.
Je ne sais pas si on peux faire une somme dans un fetch ?
C/EXEC SQL
C+ DECLARE C1 CURSOR FOR
C+ SELECT :ZONE FROM FIC1
C/END-EXEC
*
C/EXEC SQL
C+ OPEN C1
C/END-EXEC
*
C/EXEC SQL
C+ FETCH C1 INTO :resultat
C/END-EXEC
*
Une 2ieme solution , j'ai pas testé mais est ce que cela marcherai avec :ZONE = 'zone1 , zone2' et :res = ':zone1 +:zone2'
C/EXEC SQL
C+ DECLARE C1 CURSOR FOR
C+ SELECT :ZONE FROM FIC1
C/END-EXEC
*
C/EXEC SQL
C+ OPEN C1
C/END-EXEC
*
C/EXEC SQL
C+ FETCH C1 INTO :res
C/END-EXEC
après on fait la somme de :zone1 +:zone2
Franchement je ne sais pas si syntaxiquement c'est correcte, je suis en exploration et paumé..je lance le défi..la récompense, la satisfaction de faire un heureux.!!




Répondre avec citation




Partager