【发布时间】:2017-05-25 14:41:01
【问题描述】:
我正在使用 SSMS 2014。
我的示例代码如下:
select name
,family
,group
,mcount
,icount
,(cast(icount as demical(10,2)) / cast(mcount as decimal(10,2))) as per_unit
from ( select distinct
mc.name
,mc.family
,mc.group
,sum(mc.mcount) over (partition by mc.name) as mcount
,sum(ic.icount) over (partition by ic.name) as icount
from mc
join ic
on ic.num1 = mc.num1) as a
order by mcount desc
我的每单位列的第一条记录应该除以 76 / 50。这应该 = 1.52,但是,它返回 1.5200000000000。第二条记录除以 52/28 并返回 1.8571428571428。
我正在寻找 2 位小数。我读到强制转换为十进制(10,2),但这似乎不起作用。
我做错了什么?? 谢谢
【问题讨论】:
-
demical 拼写错误...
-
当您将 76 和 50 分开时 - 它们都没有小数位。但结果有。为什么您认为结果将具有与参数相同数量的小数?
-
你知道...我问是因为我不知道。我想在这里保持礼貌。但如果你要问我这个问题,我显然没有答案……因为我问的是上述问题。不要发布任何东西。如果您像下面试图提供帮助的人一样有什么可以贡献的,请务必去做...否则...不要发帖,因为您没有帮助任何人。
标签: sql tsql ssms window-functions