当前位置: 代码迷 >> Sql Server >> sql怎样做如次汇总
  详细解决方案

sql怎样做如次汇总

热度:64   发布时间:2016-04-24 10:11:23.0
sql怎样做如下汇总?
一、有一个生产周期表A,订单编号是唯一主键:

A01[天数]     A02[订单日期]      A03[订单编号]           
------------------------------------------------------------         
2                   2014-08-01           S01                        
3                   2014-07-08           S02                        
4                   2014-07-11           S03                         
2                   2014-07-20           S04                         
1                   2014-08-02           S05                       
5                   2014-07-14           S06                        
2                   2014-06-21           S07                        
....


二、比如我要查询7月份【即订单日期在2014-07-01至2014-07-31】,各生产周期天数所占订单总数的百分比,把所有出现的天数所占的比例都从小到大罗列出来,得到如下结果:

周期天数             所占比例  
-------------------------------------    
1                          ?%
2                          ?%
3                          ?%
...

------解决方案--------------------

select a01 周期天数,cast(100.0*a01/sum(a01) as varchar)+'%'  所占比例
from tbla 
where convert(varchar(7),a02,120)='2014-07'
group by a01

------解决方案--------------------
你这样写有问题,得出的数据时100%
------解决方案--------------------
引用:
你这样写有问题,得出的数据时100%

是的,应该这样


select a01 周期天数,cast(100.0*a01/(select sum(a01)  from tbla 
where convert(varchar(7),a02,120)='2014-07')  as varchar)+'%'  所占比例
from tbla 
where convert(varchar(7),a02,120)='2014-07'
group by a01

  相关解决方案