[Résolu] Produit erroné avec valeur décimale sous Firebird

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.

[Résolu] Produit erroné avec valeur décimale sous Firebird

Messagepar demanu974 » 31 Juil 2019 20:56

Bonjour,
Tout d'abord, je tiens à préciser que je suis complètement novice dans le domaine des bases de données.
Dans une requête, je souhaite calculer le produit d'une quantité par un prix unitaire.
J'utilise une syntaxe du type "quantité" * "prix unitaire".
Mais lors du calcul, j'obtiens un résultat erroné : le résultat affiché est le résultat du produit attendu multiplié par 10 puissance n, où n semble être la somme du nombre de décimales déclaré dans la table.
Exemple :
CaptureTable.PNG
exemple de résultats obtenus
CaptureTable.PNG (3.32 Kio) Consulté 161 fois

J'imagine que je fais une erreur dans le choix du type de champ.
Merci de m'expliquer mon erreur.
Pièces jointes
Exemple pour Forum.odb
base exemple
(10.83 Kio) Téléchargé 17 fois
Dernière édition par demanu974 le 01 Août 2019 11:20, édité 2 fois.
LibreOffice Version: 6.2.3.2 (x64)
Windows 10
demanu974
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 31 Juil 2019 20:07

Re: Le calcul d'un produit est multiplié par une puissance d

Messagepar Dredd » 01 Août 2019 08:41

Bonjour,

Tu utilises le format Firebird que OpenOffice ne peut pas ouvrir.

Publie déjà la requête que l'on regarde comment tu fais pour avoir une erreur sur une simple multiplication.


.
Propulsé par OpenOffice 4.1.6 sous Windows 10 x64
Avatar de l’utilisateur
Dredd
Membre cOOnverti
Membre cOOnverti
 
Message(s) : 349
Inscrit le : 24 Mai 2006 10:15
Localisation : Mega-City One

Re: Le calcul d'un produit est multiplié par une puissance d

Messagepar demanu974 » 01 Août 2019 09:13

Tout d'abord, merci d'avoir prêté attention à mon problème.
En langage SQL, ma requête est la suivante :

SELECT "ref", "PU", "Qte", "PU" * "Qte" FROM "Table1"

En continuant de chercher, il s'avère qu'en remplaçant le type de champ "DECIMAL" par "FLOAT", le calcul se passait mieux.
Cependant, le nombre de décimales semble invariablement égal à 1 (mais on peut en mettre 2 dans l'exemple de format !?).
Et je ne comprends pas pourquoi ça ne fonctionne pas avec le type "DECIMAL" :roll: ...
LibreOffice Version: 6.2.3.2 (x64)
Windows 10
demanu974
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 31 Juil 2019 20:07

Re: Le calcul d'un produit est multiplié par une puissance d

Messagepar Dude » 01 Août 2019 09:24

Salut,

Dans ta signature, il y a écrit:LibreOffice Version: 6.2.3.2 (x64)
Windows 10

Tu as installé une version expérimentale non recommandée sur ce forum :
https://forum.openoffice.org/fr/forum/viewtopic.php?f=2&t=49867

demanu974 a écrit:Et je ne comprends pas pourquoi ça ne fonctionne pas avec le type "DECIMAL"

Et comme le précise Dredd, tu utilises en plus le format Firebird qui pour moi, n'est pas abouti.

Avec le format natif HSQL, il n'y a aucun problème :
no_problemo.PNG
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20939
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: Le calcul d'un produit est multiplié par une puissance d

Messagepar demanu974 » 01 Août 2019 10:43

Bonjour,
Merci beaucoup pour ces recommandations.
Je vais en tenir compte.
Cordialement.
LibreOffice Version: 6.2.3.2 (x64)
Windows 10
demanu974
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 31 Juil 2019 20:07


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Majestic-12 [Bot] et 5 invité(s)