2014-01-06 45 views
2

我有一个连接到经典的asp页面的访问数据库。 它应该添加2列中的值,而不是添加它将数据连接在一起。 即1 + 1被显示为112SQL SUM +不能像应该那样工作

SELECT (desc_1_amnt + desc_2_amnt) AS Sum 
FROM Sales_data 

如果我使用-标志或标志*它做工精细。只是似乎没有加起来。

+1

“desc_1_amnt”和“desc_2_amnt”的数据类型是什么?我假设他们是文本类型。 –

+0

他们只是数值 – user3166621

+0

Dave Zych谢谢你。数据类型被设置为更改为数字的文本。 – user3166621

回答

1

+运算符添加数值但连接字符串值。

以下是立即窗口的示例。

? 1 + 1 
2 
? "1" + "1" 
11 

可能的解释是,你desc_1_amntdesc_2_amnt字段是文本数据类型。在这种情况下,您可以在添加文本之前将文本值转换为数字。

SELECT (Val(desc_1_amnt) + Val(desc_2_amnt)) AS [Sum] 
1

+运算可以是一个或arithmetic additionstring concatenation。从你的问题来看,这听起来像“11”的结果意味着数据类型是某种文本而不是数字。

将列更改为数字类型应该会给您预期的结果。或者,您可以使用CAST or CONVERT将文本转换为数字。

相关问题