A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

月统计数据,效率上有区别!
每个要sum明显效率低,主要是个钱数不好算
select convert(varchar(7),regtime,120) 月份,sum(case when (ybbz='1' or ybbz='2') then 1 else 0 end) 医保,
sum(case when ybbz='' then 1 else 0 end) 非医保,sum(hj) money
from registration where disabled=0 and regtime between '2012-1-1' and '2012-12-1'
group by convert(varchar(7),regtime,120)
order by convert(varchar(7),regtime,120)


这种相对就比较简单,也比较方便
select case ybbz when '' then '非医保' else '医保' end as ybbz,count(*) count,sum(hj) money
from dbo.registration where regtime between '2012-1-1' and  '2012-2-1'
and disabled=0
group by case ybbz when '' then '非医保' else '医保' end

如果是常规月份的话可以用一个存储过程了,但是也要判断月份中的闰月!
如图
在给大家给一个convert
select convert(varchar(11),regtime+26,120) from registration
group by convert(varchar(11),regtime+26,120)
order by convert(varchar(11),regtime+26,120) desc
共同学习啊!
大家如果有更好的建议可以提出来学习学习啊!呵呵

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马