2016-10-25 3 views
0

À l'aide de SQL 2014, je dois ajouter un signe négatif à une liste de valeurs numériques. Les données sont des montants en dollars avec de nombreuses places derrière la virgule décimale. J'ai converti les données en numérique (15, 2)Ajouter un symbole négatif à une valeur numérique

Voici mon instruction select. Je reçois l'erreur: Erreur de débordement arithmétique lors de la conversion de varchar en type de données numérique.

J'ai également essayé de convertir en varchar.

select '-' + CONVERT(varchar10), (convert(numeric(15, 2), MONEY)) from 
TABLE 

Je reçois la même erreur que ci-dessus. Des idées pour y parvenir?

+0

Pourquoi ne pas stocker un nombre négatif? –

+0

Votre syntaxe n'a pas de sens. –

+0

Comme posté votre requête ne renverrait pas cette erreur, car la syntaxe est horriblement mal partout. C'est probablement un bon endroit pour commencer. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

Répondre

0
SELECT -convert(MONEY, 15.2) from TABLE 
+0

Cela a fonctionné pour moi. Merci! –

1

Pourquoi ne pas multiplier par -1 à la place? Quelque chose comme ceci:

SELECT -1 * convert(MONEY, 15.2) from TABLE 

Votre syntaxe est incorrecte. Je suppose que vous voulez quelque chose comme ce qui précède.

Ou soustraire de 0.

0

pourquoi ne pas essayer Fonction Cast

SELECT -1 * CAST(MONEY as Numeric(15.2)) from TABLE