Integer overflow avec un champs calculé
Bonjour,
J'utilise la version 2.1 de Firebird (WI-V2.1.2.18118).J'en suis au développement, il n'y a aucune production. Donc pas de problème pour trafiquer la base.
J'essaie de faire quelques calculs sur la TVA.
Seulement, il me met l'erreur ci-dessous. J'ai donc essayé de découper la requête pour tester la partie qui pose problème (normalement, il n'y a pas d'union).
Si j'enlève " * (1 - (REMISE_EN_POURCENT_TOTALE / 100))", la requête fonctionne :
http://www.flyonsoft.com/sql2.png
Et si je le remplace par " * 0.99"
http://www.flyonsoft.com/sql1.png
Citation:
ISC ERROR CODE:335544779
ISC ERROR MESSAGE:
Integer overflow. The result of an integer operation caused the most significant bit of the result to carry.
STATEMENT:
TIBOInternalDataset: "<TApplication>.frmMain.dlgWisql.<TIBOQuery>.<TIBOInternalDat
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| SELECT (SUM(TVA1) * (1 - (REMISE_EN_POURCENT_TOTALE / 100))) as TVA1, TAUX, DESCRIPTION
FROM (
SELECT SUM((LIGNE_COMMANDE.PU_HT * LIGNE_COMMANDE.QUANTITE - Ligne_Commande.Remise - (Ligne_Commande.PU_HT / 100 * Ligne_Commande.Quantite * Ligne_Commande.Remise_en_pourcent)) * (TVA.TAUX / 100)) as TVA1, TVA.DESCRIPTION, TVA.TAUX, COMMANDE.REMISE_EN_POURCENT_TOTALE
FROM LIGNE_COMMANDE
JOIN TVA on TVA.NUMERO_TVA=LIGNE_COMMANDE.NUMERO_TVA
JOIN Commande ON Commande.NUMERO_DE_COMMANDE=Ligne_Commande.NUMERO_DE_COMMANDE
WHERE LIGNE_COMMANDE.NUMERO_DE_COMMANDE='1'
GROUP BY TAUX, DESCRIPTION, COMMANDE.REMISE_EN_POURCENT_TOTALE
UNION
SELECT 0 as TVA1, TVA.DESCRIPTION, TVA.TAUX, COMMANDE.REMISE_EN_POURCENT_TOTALE
FROM LIGNE_COMMANDE
JOIN TVA on TVA.NUMERO_TVA=LIGNE_COMMANDE.NUMERO_TVA
JOIN Commande ON Commande.NUMERO_DE_COMMANDE=Ligne_Commande.NUMERO_DE_COMMANDE
WHERE LIGNE_COMMANDE.NUMERO_DE_COMMANDE='1')
GROUP BY TAUX, DESCRIPTION, REMISE_EN_POURCENT_TOTALE |
Les chiffres ne sont pas gros. Voyez-vous de quel problème il s'agit ?
Merci