bonjour,
je voudrais savoir quelle est la meilleur manière pour faire un cast:
Au départ j'avais seulement le cast sur la deuxième partie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select sum((cast(ACHAT.ACCOEFDEV * L_ACHAT.LAPRIX * L_ACHAT.LAQTE as decimal(15,4)) * cast((1 - (L_ACHAT.LATAUXREM/100)) as decimal(15,4)))) as MHT from L_ACHAT join achat on achat.acidachat=l_achat.laidachat
car cela me semble indisppensable à cause de la division.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cast((1 - (L_ACHAT.LATAUXREM/100)) as decimal(15,4))
Mais avec la fonction SUM , cela ne passait plus, a cause d'une erreur d'overflow, ce qui est logique.
J'ai donc rajouté un cast sur les 3 autres champs.
Et l'on retrouve le code écrit en haut de cette page. Il fonctionne bien, mais est ce que c'est bien correct ? et optimun ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cast(ACHAT.ACCOEFDEV * L_ACHAT.LAPRIX * L_ACHAT.LAQTE as decimal(15,4))
Est ce qu'il ne faut pas remettre un cast globale qui encapsule les 2 cast de la requete ?
Petite précision: tout les champs sont de types decimal(15,4).
cordialement
Partager