按纵列相加作分母,对应的值作分子
我知道怎么算的,但不会SQL语句! :(

解决方案 »

  1.   

    select 货物名称,上期结存数,本期发放数,数库存数,
    convert(varchar(10),参数1/参2)+'%' as 接收比例  from tb
      

  2.   

    select * ,
    cast(100.0*本期接收数/(select sum(本期接收数) from tbl) as varchar(10))+'%' as 接收比例,
    cast(100.0*本期发放数/(select sum(本期发放数) from tbl) as varchar(10))+'%' as 发放比例,
    cast(100.0*本期库存数/(select sum(本期库存数) from tbl) as varchar(10))+'%' as 库存比例
    from tbl
      

  3.   


    select *,
           结存比例=上期结存数/( select sum(上期结存数) from tablename )
           接收比例=本期接收数/( select sum(本期接收数) from tablename )
           发放比例=本期发放数/( select sum(本期发放数) from tablename )
           库存比例=库存数/( select sum(库存数) from tablename )
    from tablename
      

  4.   

    select * ,
    本期接收数 /(select sum(本期接收数) from 表) 接收比例,
    本期发放数 /(select sum(本期发放数) from 表) 发放比例,
    库存数 /(select sum(库存数) from 表) 库存比例
    from 表
      

  5.   

    Select 上期结存数,本期接收数,本期发放数,库存数,
    cast(本期接收数/(0.01*(Select sum(本期接收数) from 表名)) as nvarchar)+'%' as 接收比例,
    cast(本期发放数/(0.01*(Select sum(本期发放数) from 表名)) as nvarchar)+'%' as 发放比例,
    cast(库存数/(0.01*(Select sum(库存数) from 表名)) as nvarchar)+'%' as 库存比例,
    from 表名
      

  6.   

    select  货物名称,上期结存数,本期接收数,本期发放数,库存数,
    接收比例=left(cast(本期接收数 as numeric(8,4))/(select sum(本期接收数) from 表名)*100,5 )+'%' ,
    发放比例=left(cast(本期发放数 as numeric(8,4))/(select sum(本期接收数) from 表名)*100,5 )+'%',
    库存比例=left(cast(库存数 as numeric(8,4))/(select sum(本期接收数) from 表名)*100,5)+'%'
    from 表名;--测试结果:
    单鞋 1000 1500 800 1700 55.55% 29.62% 62.96%
    棉鞋 500 300 600 200 11.11% 22.22% 7.407%
    凉鞋 100 900 200 800 33.33% 7.407% 29.62%
      

  7.   

    select  货物名称,上期结存数,本期接收数,本期发放数,库存数,
    接收比例=left(cast(本期接收数 as numeric(8,4))/(select sum(本期接收数) from tb)*100,5 )+'%' ,
    发放比例=left(cast(本期发放数 as numeric(8,4))/(select sum(本期发放数) from tb)*100,5 )+'%',
    库存比例=left(cast(库存数 as numeric(8,4))/(select sum(本期接收数) from tb)*100,5)+'%'
    from tb;
    --改成这样可以得到楼主的结果:
      

  8.   

    select 上期结存数,   
           本期接收数,
           本期发放数,
           库存数,
           计算接收比例 as 接收比例,
           计算发放比例 as 发放比例,
           计算库存比例 as 库存比例from 表/*计算..比例为你的计算方法*/
      

  9.   

    select  货物名称,上期结存数,本期接收数,本期发放数,库存数,
    接收比例=(select distinct case when sum(本期接收数)=0 then '0.00%' 
       else left(cast(a.本期接收数 as numeric(8,4))/sum(本期接收数)*100,5 )+'%' end from tb) ,
    发放比例=(select distinct case when sum(本期发放数)=0 then '0.00%' 
       else left(cast(a.本期发放数 as numeric(8,4))/sum(本期发放数)*100,5 )+'%' end from tb),
    库存比例=(select distinct case when sum(库存数)=0 then '0.00%' 
       else left(cast(a.本期接收数 as numeric(8,4))/sum(本期接收数)*100,5 )+'%' end from tb)
    from tb a;