这个SQL Server查询分区计算有什么问题?
发布时间:2020-12-12 06:21:35 所属栏目:MsSql教程 来源:网络整理
导读:我在SQL Server 2008 R2数据库上有这个表结构: CREATE TABLE FormTest( clientid char(10),DateSelected date,A int,B int,C int) 我在表格FormTest中填写了以下信息 clientid DateSelected A B Cx1 2006-06-09 65150 4921 1x2 2006-05-05 155926 69092 1x3
我在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 谁能告诉我我做错了什么? 解决方法这是因为你正在进行整数除法.您应该将其中一个操作数转换为float或decimal(取决于您正在进行的计算的精度和目的),使用类似于:((CAST((a+ b + c) AS FLOAT) / 3) / 216647 * 10) 或者可能: (((a+ b + c) / 3.0) / 216647.0 * 10) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |