SQL按月统计

做统计就要和时间打交道。。。 

一:当前年的月统计

select b.number as [Month], sum(a.A4012) shouru,SUM(a.A4011) feiyong,sum(a.A4012-A4011) lirun
from A040A001 a 
right join 
(select number from master..spt_values where type='p' and number between 1 and 11) b
on B0110='00172' AND a.A4035>'2011-1-1' AND  month(a.A4035)=b.number 
group by b.number,year(a.A4035) ORDER BY [Month] 

结果:

 

二:时间段内按月统计

1.首先获得日期表

WITH date AS
(
 SELECT convert(char(7),DATEADD(month,number,'2011-07-01'),120) riqi
 FROM 
   master..spt_values 
 WHERE 
   type='P' 
 and 
   DATEADD(month,number,'2011-07-01')<='2012-02-01'
)
SELECT* FROM date

2.操作

WITH date AS
(
	SELECT convert(char(7),DATEADD(month,number,'2011-07-01'),120) riqi
	FROM 
	  master..spt_values 
	WHERE 
	  type='P' 
	and 
	  DATEADD(month,number,'2011-07-01')<='2012-02-01'
)
select date.riqi , sum(a.A4012) shouru,SUM(a.A4011) feiyong,sum(a.A4012-A4011) lirun
from A040A001 a 
right join 
date 
on B0110='00172' AND a.A4035>'2011-1-1' AND  convert(char(7),a.A4035,120)=date.riqi 
group by date.riqi 


 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值