mwbr.net
当前位置:首页 >> sql相除 >>

sql相除

int值计算最后结果还是int值,可以将其中一个强制转换为小数 select ts_count/CAST(bj_count AS decimal(10,4) from tb_bian_shangpin

declare @a float declare @b float select @a= count(*) from table1 select @b = count(*) from table2 select @a/@b 楼上的方法,如果只是COUNT条数,没有小数点埃。。 要转格式: select a.a/b.b from (select cast(count(*)as float) as a ...

这个必须用函数cast , 下面直接SQL 说明: select cast(((1*1.00)/10)*100, as decimal(18,2)) 上面是保留小数点后二位:结果:10.00 后面就是拼接字符串了 select convert(varchar,10.00)+'%' 结果:10%

select (s.数量/d.主辅积数) as 结果,s.id form 表1 s,表二 d where s.id=d.id

同意一楼的,但是如果是来自同一张表的话还可以优化下,语句如下 Select sum(a) / sum(b) From XX 希望能帮到你

这取决于字段类型,如果相除的两个字段都是整数,返回类型自然也是整数。 所以想要得到整数,在运算过程中convert()或者cast转换城小数来运算

DECLARE @a int, @b int, @c int SET @a=5, @b=10, @c=3 SELECT 1.0*@a/@b, 1.0*@a/@c

整数运算最后结果也会只取整数部分 在计算时将其中一个数字*1.0转换成小数就可以得到含有小数的结果了

应该是相除后的结果小于1 , 而你sum 的字段是整型, 所以结果只保留了整型,就为0 了 你可以这么写 (1.00 * sum(A))/ (1.00* sum(B)) 或者用 convert(decimal(18,4), sum(A)) / convert(decimal(18,4), sum(B))

两个int的数据相除结果还是int,所以你的结果是0,round(1.0*superpcs/standoutput,2)*100就可以了

网站首页 | 网站地图
All rights reserved Powered by www.mwbr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com