SQL如何按年份月份统计

SQL如何按年份月份统计,第1张

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 查询每个月统计的数据。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9816324.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存