OVH Cloud OVH Cloud

Addition Nulle

12 réponses
Avatar
borntoride
Bonjour,

j'ai, dans une requ=EAte(et non dans une proc=E9dure), deux variables que
j'additionne. Ex :

****************************
1 + 1 =3D 2
***************************

Mais lorsque que j'ai une des deux variables qui est nulle, toute mon
=E9quation devient nulle. Ex:

**************************
1 + Nulle =3D Nulle.
**************************

Comment faire pour que l'exemple ci-haut donne comme r=E9sultat 1 ?

ATTENTION !! Ce traitement se fait dans une requ=EAte, et non dans une
proc=E9dure en Wlanguage.

Merci !

2 réponses

1 2
Avatar
mat
...
essaie de contacter Mat qui participe dans ces news, il a une bonne
expertise de HF et du SQL

--
suivre ce lien pour répondre:http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)



Merci je vais tenter cette possibilité !





Bonsoir,

bon, moi je ne fais pas de calculs par SQL sur HF :-)
Le problème peut avoir deux raisons: des rubriques non renseignées,
comme cela est évoqué dans le thread - dans ce cas des valeurs par
défaut 0 sur les rubriques numériques et monétaires devraient faire
l'affaire. Il n'y aura pas de valeurs Null. La 2e raison sont des
liaisons "Null", dans le cas d'addition de rubriques de plusieurs
fichiers. Dans ce cas, vraisemblablement il n'y a pas de solution.
F1.valeur + F2.valeur (F2 lié par left outer join), donne 0 si F2 n'a
pas d'enregistrement correspondant. Mais comme Windev est un peu bizarre
avec les conversions de types (p.ex. on peut tranquillement concaténer
textes et numériques sans conversion) j'ai cherché et viens de trouver
un truc pour que le calcul donne quand-même 1.

//Exemple avec un résultat seulement sur F1
sQuery is string = "SELECT F1.valeur AS v1, F2.valeur AS v2,
F1.valeur+round(F2.valeur,2) AS tot "
sQuery += "FROM F1 LEFT OUTER JOIN F2 on (F1.idF1 = F2.idF1) "
sQuery += "WHERE F1.idF1 = 999 "

résultat
v1 = 1
v2 = 0 // en effet pas 0, mais Null
tot = 1


Salutations
Mat
Avatar
borntoride
On 14 mar, 19:25, mat wrote:
...

>> essaie de contacter Mat qui participe dans ces news, il a une bonne
>> expertise de HF et du SQL

>> --
>> suivre ce lien pour répondre:http://cerbermail.com/?2KrV3YZXnn
>> Daniel
>> ;-)

> Merci je vais tenter cette possibilité !

Bonsoir,

bon, moi je ne fais pas de calculs par SQL sur HF :-)
Le problème peut avoir deux raisons: des rubriques non renseignées,
comme cela est évoqué dans le thread - dans ce cas des valeurs par
défaut 0 sur les rubriques numériques et monétaires devraient faire
l'affaire. Il n'y aura pas de valeurs Null. La 2e raison sont des
liaisons "Null", dans le cas d'addition de rubriques de plusieurs
fichiers. Dans ce cas, vraisemblablement il n'y a pas de solution.
F1.valeur + F2.valeur (F2 lié par left outer join), donne 0 si F2 n'a
pas d'enregistrement correspondant. Mais comme Windev est un peu bizarre
avec les conversions de types (p.ex. on peut tranquillement concaténer
textes et numériques sans conversion) j'ai cherché et viens de trouver
un truc pour que le calcul donne quand-même 1.

//Exemple avec un résultat seulement sur F1
sQuery is string = "SELECT F1.valeur AS v1, F2.valeur AS v2,
F1.valeur+round(F2.valeur,2) AS tot "
sQuery += "FROM F1 LEFT OUTER JOIN F2 on (F1.idF1 = F2.idF1) "
sQuery += "WHERE F1.idF1 = 999 "

résultat
v1 = 1
v2 = 0 // en effet pas 0, mais Null
tot = 1

Salutations
Mat



J'essaie ca ! Merci !
1 2