Tôi đang làm việc trên SQLServer 2008 với bảng sau:làm tròn số thập phân trong liên hiệp các khoản tiền?
id user program seconds
------------------------------------
9999 'user01' 'pr01' 5
Cột 'giây' được định nghĩa là một số thập phân (14,0) và hàng chỉ trong bảng là một hiển thị.
Vì vậy, tôi thử một số truy vấn:
Q1:
select seconds*0.95 from myTable
union all
select seconds from myTable
Nó cho kết quả tôi mong đợi:
4.75
5.00
Q2:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds) from myTable
Tôi đã chờ đợi sự kết quả tương tự như trong Q1 nhưng resu lt tôi nhận được là:
5
5
Q3:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds)*1.00 from myTable
Trong trường hợp này tôi nhận được kết quả tôi mong đợi:
4.75
5.00
Vì vậy, tôi muốn biết tại sao Q2 không phải là nhận được kết quả mong đợi.
Tôi đã thử ví dụ tương tự với 'giây' là số thập phân (2.0) và hoạt động tốt vì vậy tôi đoán nó có liên quan đến kích thước thập phân, nhưng trong trường hợp đó tôi không thể hiểu tại sao Q1 và Q3 hoạt động trong khi Q2 thì không.
Tôi đang thử lại với số thập phân (2.0) và dường như không hoạt động hoặc –