Bonsoir,
le resultat normalement 4650
le résultat espéré peut-être
si votre SQL était, pour tester sans somme
SELECT T1.ID,T1.X,T2.ID,T2.Y, iif(T1.x between 9 and 10 ,3100/30*iif(T2.y is null,30,30-T2.y),0) FROM T1 LEFT JOIN T2 ON T1.ID=T2.ID
vous obtiendriez
1 9 1 15 1545
2 10 [null] [null] 3090
3 2 [null] [null] 0
Donc, si vous faites la somme (4435) déjà ainsi ce n'est pas juste du moins par rapport à l'espéré
Ce qui cloche ? La division et l'ordre des opérandes
pour obtenir ce que vous souhaitez il y a une erreur d'opérateur
comme le prouve
1 2
| SELECT 9, 3100/(30/15) R9, 10 , 3100/(30/30) R10
FROM RDB$DATABASE |
votre code devient donc
iif(T1.x between 9 and 10 ,3100/(30/iif(T2.y is null,30,30-T2.y)),0)
Partager