我正在尝试编写一个跟踪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值。
答案 0 :(得分:3)
由于您只选择两个表中相同的D1,因此减法操作将返回0.00
只需删除加入条件AND Table1.D1 = Table2.D1
编辑:注意
随着问题的改变,我的答案并不明显,因为初始sql查询已更改