
select left(convert(varchar(10),[datetime],120),7) as 月份,sum(Amount) as 总数
from 表
where [datetime]<='你输入的时间条件'
group by left(convert(varchar(10),[datetime],120),7)
select cast(datepart(year,[datetime]) as varchar)+'年'+cast(datepart(month,[datetime]) as varchar)+'月' as 月份,sum(Amount) as 总数
from 表
where [datetime]<='你输入的时间条件' and datepart(year,[datetime])=left('你输入的时间条件',4)
group by cast(datepart(year,[datetime]) as varchar)+'年'+cast(datepart(month,[datetime]) as varchar)+'月'
SELECT SUM(field_name) FROM tblName WHERE UNIX_TIMESTAMP(month) <= DATE_ADD(CURRENT_DATE(),INTERVAL -1 MONTH) GROUP BY month;
select 月份,sum(isnull(count,0)) from A group by 月份
你是不是整个月没数据的就自动要补一条记录为0的
我想了一下,简单的这样写,都不可能出现补零的数据,毕竟这个月份的数据并没有出现在表中。
看实际情况,必要时候使用union
既然知道只有两个月的,那就补上
select from
(
select 月份,sum(isnull(count,0)) from A group by 月份
union all
select '2012-02',0
union all
select '2013-05',0
) a
order by 月份
不过话说你是不是年份弄错了,从2012直接跳到2013?
我这个方法还搞不定吗?
select DATE_FORMAT(来电时间,'%Y-%m') as 月, 问题类别 , count(1) as 数量 from
( select 来电时间, 问题类别 from mytable where 问题类别 = '农村用水投诉' ) tmptable
group by DATE_FORMAT(来电时间,'%Y-%m') ,问题类别 ORDER BY 月 ASC;
你的交易时间字段是8位字符型数据,不是日期型的?
select left(交易时间,6),sum(交易额) from tablename
group by left(交易时间,6)
having sum(交易额)>10000
如果是日期型的,可以把
left(交易时间,6)
改为
convert(varchar(7),交易时间,21)
以上就是关于SQL如何按年份月份统计全部的内容,包括:SQL如何按年份月份统计、mysql数据库实现月度累加统计:5月统计5,4,3..之前月的。并分组统计。、SQL 查询每个月统计的数据。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)