J'utilise de lancer comme décimal et spécifiez la précision que j'ai besoin. Voici l'extrait de ma requête SQL: P>
Peu importe ce que j'ai mis dans le paramètre pour décimal, la valeur de la colonne Impact est toujours "0.00". p>
Cela ne devrait pas être le cas car j'ai un numéro = 5, un volume = 81000, cela devrait donc me donner "0,0061" dans l'impact. p>
S'il vous plaît quelqu'un peut-il expliquer pourquoi jeterais comme décimal n'accepte pas mes paramètres de donner la précision dont j'exige dans la colonne Impact? P> couler (((num / volume) * 100) comme décimal (16,8)) comme impact code> p>
3 Réponses :
Parce que le résultat INT / INT coulait comme int et c'est pourquoi 5/81000 égaux 0
Vous pouvez utiliser P>
(CAST(num AS decimal(16,8)) / CAST(volume AS decimal(16,8))) * 100 AS impact
Il est probable parce que vos deux paramètres pour NUM et volume sont des entiers. En cas d'une de ces dises comme une décimale et que vous devriez obtenir la réponse que vous voulez.
par exemple
Votre base de données fait clairement une division entière. Je voudrais simplement réécrire ceci comme suit:
Quel DBMS Produit utilisez-vous? "SQL" est juste une langue de requête, pas le nom d'un produit de base de données spécifique. Veuillez ajouter un tag pour le produit de base de données que vous utilisez. Pourquoi devrais-je marquer mon DBMS
Quels types de données sont
num code> etvolume code>?Essayez
(num * 100.0) / volume code>. ( Division entière i> ...)