【发布时间】:2015-09-12 13:54:12
【问题描述】:
我正在尝试在 SQL 中将一些性能指标计算为 [RATE],但无论我做什么,我都只能得到整数值作为回报。
在我的数据集中,我有一个分子和一个分母,它们都存储为整数,它们被分解为组和子集。根据组和子集,计算速率略有不同。对于第 1 组,计算只是 N/D。对于第 2 组,计算结果为 (N*1000)/D,但 1 个子集的计算结果为 (N*10000)/D。
我将查询写为:
SELECT [Group]
,[SubSet]
,[Numerator] N
,[Denominator] D
,CASE WHEN D=0 Then NULL
WHEN [Group]='G1' THEN [N]/[D]
WHEN [SubSet]='S2' THEN ([N]*10000)/[D]
WHEN [SubSet] NOT LIKE 'S2%' AND [G] NOT LIKE 'G1%' THEN ([N]*1000)/[D] as [RATE]
无论我做什么,结果变量都是整数。我尝试将RATE 格式化为varchar、decimal 和float,但没有成功。我也尝试将 N 和 D 的格式更改为 varchar、decimal 和 float。我尝试将方程式从(N*1000)/D 更改为(N/D)*1000,但仍然没有效果。
我错过了什么/做错了什么?
【问题讨论】:
标签: calculated-columns decimalformat rounding-error