一条查询语句,求思路解决办法

一条查询语句,求思路
有一张类似如下的表
   id    name     date
   1     名称     20010-3-3
想在实现如下的报表
    名称   当月数量    年数量    累计数量
能在一条sql语句里实现嘛?我只能做到按名称分组后计算累计数量
------解决方案--------------------
select 名称,sum(case when date between '2013-09-01' and '2013-10-01' then 数量 end) as 9月数量,
sum(case when date between '2013-01-01' and '2014-01-01' then 数量 end) as 2013年数量,
sum(数量) 总数量
from tb
group by 名称