我有一个连接到经典的asp页面的访问数据库。 它应该添加2列中的值,而不是添加它将数据连接在一起。 即1 + 1
被显示为11
不2
SQL SUM +不能像应该那样工作
SELECT (desc_1_amnt + desc_2_amnt) AS Sum
FROM Sales_data
如果我使用-
标志或标志*
它做工精细。只是似乎没有加起来。
我有一个连接到经典的asp页面的访问数据库。 它应该添加2列中的值,而不是添加它将数据连接在一起。 即1 + 1
被显示为11
不2
SQL SUM +不能像应该那样工作
SELECT (desc_1_amnt + desc_2_amnt) AS Sum
FROM Sales_data
如果我使用-
标志或标志*
它做工精细。只是似乎没有加起来。
+
运算符添加数值但连接字符串值。
以下是立即窗口的示例。
? 1 + 1
2
? "1" + "1"
11
可能的解释是,你desc_1_amnt
和desc_2_amnt
字段是文本数据类型。在这种情况下,您可以在添加文本之前将文本值转换为数字。
SELECT (Val(desc_1_amnt) + Val(desc_2_amnt)) AS [Sum]
+运算可以是一个或arithmetic additionstring concatenation。从你的问题来看,这听起来像“11”的结果意味着数据类型是某种文本而不是数字。
将列更改为数字类型应该会给您预期的结果。或者,您可以使用CAST
or CONVERT
将文本转换为数字。
“desc_1_amnt”和“desc_2_amnt”的数据类型是什么?我假设他们是文本类型。 –
他们只是数值 – user3166621
Dave Zych谢谢你。数据类型被设置为更改为数字的文本。 – user3166621