SQL:无法对查询进行CAST

时间:2015-06-30 09:21:35

标签: sql sql-server

SELECT CAST ((SUM(r.SalesVolume)/1000) AS decimal(3,3)) FROM RawData r

以上是我尝试运行的查询的一部分但返回错误:

Lookup Error - SQL Server Database Error: Arithmetic overflow error converting int to data type numeric.

不确定这意味着什么。 结果列看起来像(没有除以1000并且转换):

Total_Sales_Volume
    64146
    69814
    68259
    56318
    66585
    51158
    44365
    49855
    49553
    88998
    102739
    55713

尝试将其作为浮动但不起作用。

4 个答案:

答案 0 :(得分:5)

问题是decimal(3,3) - >这意味着一个3位数的数字,其中3位在小数点后面。如果您想要这样的数字1234567.123,您可以将其声明为decimal(10,3)

答案 1 :(得分:2)

试试这个:

SELECT CAST ((SUM(r.SalesVolume)/1000.0) AS decimal(6,3)) FROM RawData r

答案 2 :(得分:2)

total = total + parseInt(amount); 表示您允许3位数的数字,其中3位在逗号后面......我认为您的意思是decimal(3,3)

编辑:此外,您需要除以decimal(6,3),而不是1000.0

  • 如果除以1000,则为整数除法。
  • 如果除以1000,则它将成为带有逗号的十进制除法。

答案 3 :(得分:0)

请尝试以下操作:

SELECT CAST ((SUM(r.SalesVolume)/1000) AS numeric(6,3)) FROM RawData r