【发布时间】:2013-12-24 08:49:13
【问题描述】:
我有一个表 tableA,其中包含数据类型为 varchar 的列 [Amount]。
它的值如下:
47980.89
333652.61
332388.84
374664.48
368715.26
371689.33
371689.33
368715.26
374664.48
现在,当我运行查询时,它运行成功,但每次输出不同
SELECT
sum(convert(float, Amount))
FROM tableA
当我尝试其他语句时,我得到一个错误
无法将 char 值转换为货币。 char 值的语法不正确。
代码:
SELECT
sum(convert(money, Amount))
FROM tableA
我想得到[Amount] 列的总和
【问题讨论】:
-
select cast(sum(amount) as money) from table group by... -
@@VijayKumar :: amount 是 varchar 类型
-
Bad habits to kick : choosing the wrong data type - 你应该始终使用最合适的数据类型 - 毕竟这就是他们的目的!您的列
Amount应该是类型的decimal(18,2)- NOT varchar!解决这个问题,你所有的求和问题都会自行消失......
标签: sql-server tsql