我在SQL Server 2008 R2数据库上具有以下表结构:
CREATE TABLE FormTest ( clientid char(10), DateSelected date, A int, B int, C int )
我在表格FormTest中填写了以下信息
clientid DateSelected A B C x1 2006-06-09 65150 4921 1 x2 2006-05-05 155926 69092 1 x3 2006-01-20 95603 156892 1 x4 2006-01-20 30704 164741 1 x4 2006-02-03 65150 174834 1 x5 2006-04-28 59629 4921 1 x6 2006-01-27 30704 162356 1 x7 2006-06-30 65150 4921 1 x8 2006-07-10 65150 4921 1
最后,我运行此sql查询:
SELECT clientid, (((a+ b + c) / 3) / 216647 * 10) AS Formula1 From FormTest
但是后来我得到了这些结果:
clientid Formula1 x1 0 x2 0 x3 0 x4 0 x4 0 x5 0 x6 0 x7 0 x8 0
有人可以告诉我我在做什么错吗?
这是因为您正在执行整数除法。您应使用以下方法将其中一个操作数转换为浮点数或十进制(取决于您进行的计算的精度和目的):
((CAST((a+ b + c) AS FLOAT) / 3) / 216647 * 10)
或可能:
(((a+ b + c) / 3.0) / 216647.0 * 10)