【发布时间】:2021-09-12 17:01:49
【问题描述】:
我有一个计算列,它给我的结果与使用其他列的手动计算不同。
SELECT VG.avg_tax,
VP2.prop * (S.points / 100) / (NULLIF(CAST(VG.avg_tax AS DECIMAL(7 , 2)) , 0)) AS net_points,
VP2.prop ,
S.points,
(NULLIF(CAST(VG.avg_tax AS DECIMAL(7 , 2)) , 0)) AS divisio ,
VP2.new_tax
这是代码的第一部分,我认为是错误所在。
结果是:
+---------+------------+------+--------+----------+----------+
| avg_tax | net_points | prop | points | divisio | new_tax |
+---------+------------+------+--------+----------+----------+
| 1.23 | 43.902439 | 1 | 5442 | 1.23 | 23 |
+---------+------------+------+--------+----------+----------+
如您所见,通过手工计算,net_points 处的结果应为: 5442/100 * 1 / 1.23 = 44.2439。
为什么会这样?
【问题讨论】:
标签: sql calculated-columns sqldatatypes