我正在使用下表处理 SQLServer 2008:
id user program seconds
------------------------------------
9999 'user01' 'pr01' 5
列“秒”定义为小数 (14,0),表中唯一的行是显示的行。
所以我尝试了一些查询:
Q1:
select seconds*0.95 from myTable
union all
select seconds from myTable
它给出了我期望的结果:
4.75
5.00
Q2:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds) from myTable
我期待与第一季度相同的结果,但我得到的结果是:
5
5
问题 3:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds)*1.00 from myTable
在这种情况下,我得到了我期望的结果:
4.75
5.00
所以,我想知道为什么第二季度没有得到预期的结果。我尝试了同样的例子,'秒'是小数(2,0)并且工作正常,所以我猜它与小数的大小有关,但在那种情况下,我无法弄清楚为什么 Q1 和 Q3 工作,而Q2 没有。