使用sql查询在ms访问中添加两个diff列中的值

时间:2011-07-22 22:26:36

标签: sql ms-access ms-access-2003

嘿我想知道你怎么可能用“ - ”来减去查询的SELECT部分​​。那么你也可以用“+”来添加吗?我已经尝试过,而不是将这些值加在一起,这样做123 + 0.28 = 1230.28这可能与文本格式的数字有什么关系吗?但是,当我使用“ - ”时,我从来没有改变格式。感谢

我的代码:

INSERT INTO Table( Question, Calculation)

SELECT DISTINCT 'Addition' AS Question,(T2.Calculation + T1.Calculation) AS Calculation

FROM Some_Table T2, Some_Table T1

ORDER BY T2.Question;

4 个答案:

答案 0 :(得分:4)

它可能将+解释为a和b之间的字符串连接。尝试“(a - 0)+(b - 0)”强制解释为数字。

答案 1 :(得分:4)

如果T2.Calculation和T1.Calculation是文本数据类型,请使用Val()函数在添加之前将它们转换为数字。

(Val(T2.Calculation) + Val(T1.Calculation)) AS Calculation

修改: 当您使用带有两个文本值的减号运算符时(如"2" - "1"),如果可能,Access会将文本值转换为它们的等价数字。但是,如果任一文本值不表示有效数字,则减号运算符将为您提供“类型不匹配”错误...如"2" - "hans"

plus运算符的工作方式不同---有两个文本值,它会尝试连接它们,就像你使用了连接运算符(&)而不是加法运算符(+)...... {{ 1}}将为您提供“21”作为文本值而不是数字3.因此,在该特定情况下,"2" + "1"等同于"2" + "1"

加法和连接运算符之间的一个重要区别是其中一个值为Null。 "2" & "1"产生Null。但是"2" + Null会产生“2”。

答案 2 :(得分:3)

是的,您可以使用'+'将两个数字加在一起。

SELECT table1.Field1, table1.Field2, Field1+field2 As SumOfFields
FROM table1;

Field1  Field2  SumOfFields
1       2       3
2       3       5

编辑: 如果你有想要一起添加的字符串,那么你需要将字段转换为数字: - 因为有人指出CLng不会帮助OP。它已被更改为CDbl以允许小数。

SELECT table1.Field1, table1.Field2, CDbl(Field1)+CDbl(field2) As SumOfFields
FROM table1;

答案 3 :(得分:-1)

0+的公式前面,它会知道你用数字而不是字符串说话:

而不是[A]+[B]+[C]0+[A]+[B]+[C]