sqlserver数据库,字段1是名字,字段2是数量,有三行记录,比如
name shuliang
abc 27
bcd 32
cde 18
如何计算每个的数量和数量这列的合计的比值(27/(27+32+18)),这个意思,SQL怎么写?
with temp as ( select 'abc' a,27 as b union all select 'bcd' a,32 as b union all select 'cde' a,18 as b ) select a,b,b*1.0/sum(b)over() from temp
在shuliang下面一行插入公式sum(d2)比如d3去计算总值,在shuliang列加一列,插入公式d3/d2,就可以了,如果不需要总值,可以将d3隐藏
建议使用普通报表实现这个运算,具体如下图
必须要用SQL,可以使用别列的方法:
select name, shuliang/hj from (select name,shuliang , ( SELECT sum(zonge) FROM Tname) as hj from Tname) A
注意上面除式你在实际使用过程中,最好进行分母非零判断