如何使用Insert Into在Sql Server中减去负小数

时间:2011-10-26 19:11:00

标签: sql-server tsql sql-server-2008

我正在尝试编写一个跟踪2个表中十进制值历史记录的查询。

表1

PK  Num1   D1        D2
1   1      -0.00375  -0.005
2   1      -0.00325  

表2

PK   Num1   D1        D2
1    1      -0.00375  -0.0025
2    2      -0.005

表3(历史表)

Num1  OldD2     NewD2     D2Difference
1     -0.005  -0.0025  0.0000//This is where I am having trouble

我的查询将添加2个D2值,但不会减去。它总是返回0.00 这是我的询问。

BEGIN TRANSACTION
INSERT INTO Table3
SELECT Table1.Num1, Table1.D2, Table2.D2, (Table1.D2 - Table2.D2)
FROM Table1
INNER JOIN Table2 ON Table1.Num1 = Table2.Num1 AND Table1.D1 = Table2.D1
COMMIT

同样,我可以添加2位小数但减去总是返回0.00。我知道我错过了穿过森林的树木(或者是相反的方式?)。

注意:所有小数均为(5,5),并且连接是表1和2的结果,每个Num1具有唯一的D1值。

1 个答案:

答案 0 :(得分:3)

由于您只选择两个表中相同的D1,因此减法操作将返回0.00

只需删除加入条件AND Table1.D1 = Table2.D1

即可

编辑:注意

随着问题的改变,我的答案并不明显,因为初始sql查询已更改