select 
大类名称,
销售额,
str((100.0*销售额/(select sum(销售额) from table)),10,2)+'%' as  占全部销售额的比例 
from table

解决方案 »

  1.   

    同意楼上大侠的,不过补充一下,如果销售额是int型的话,就要转换成带小数的数据类型,要不比例都会为0
      

  2.   

    可以试试下面一句话,没有调试哈select a.大类名称,a.销售额,(100.0*a.销售额/sum(b.销售额)) as  占全部销售额的比例 
    from table a,table b
    where a.大类名称 = b.大类名称 and a.销售额 = b.销售额
    group by a.大类名称,a.销售额
      

  3.   

    最好通过VIEW来实现,不然每次检索是都要从新计算,
    修改 j9988(j9988) 的T-SQL
    CREATE VIEW SALESRATIO
    AS
    select 
    大类名称,
    销售额,
    str((CONVERT(NUMERIC(10,3),100.0*销售额/(select sum(销售额) from [table]))),10,2)+'%' as  占全部销售额的比例 
    from [table]
    GO
    SELECT * FROM SALESRATIO
      

  4.   

    select 
    大类名称,
    销售额,
    str((100.0*销售额/t1.总销售额),10,2)+'%' as  占全部销售额的比例 
    from table ,(select 总销售额=sum(销售额) from table)t1
      

  5.   


    select 大类名称,销售额,
    convert(convert(varchar(5),
               (销售额/(select sum(销售额)from tablename)*100))+'%'
    from tablename
      

  6.   

    declare @mysum float
    select @mysum=sum(销售额) from tablename
    select 大类名称 ,   销售额 ,  convert(varchar(5),销售额 /@mysum *100)+'%' 占全部销售额的比例 from tablename