1.核心的部分

-- 不依赖任何表,只是用mysql自带函数方法
select concat((select year(now())),'01') as '月份'
union select concat((select year(now())),'02')
union select concat((select year(now())),'03')
union select concat((select year(now())),'04')
union select concat((select year(now())),'05')
union select concat((select year(now())),'06')
union select concat((select year(now())),'07')
union select concat((select year(now())),'08')
union select concat((select year(now())),'09')
union select concat((select year(now())),'10')
union select concat((select year(now())),'11')
union select concat((select year(now())),'12')

2.利用上面sql配合自定义表

select t1.m as '入职月份' , ifnull(t2.c,0) as '入职人数' from
(select concat((select year(now())),'01') as munion select concat((select year(now())),'02')union select concat((select year(now())),'03')union select concat((select year(now())),'04')union select concat((select year(now())),'05')union select concat((select year(now())),'06')union select concat((select year(now())),'07')union select concat((select year(now())),'08')union select concat((select year(now())),'09')union select concat((select year(now())),'10')union select concat((select year(now())),'11')union select concat((select year(now())),'12')
) t1
left join
(select DATE_FORMAT(t.work_time,'%Y%m') as m , count(t.id) as c from teacher t GROUP BY DATE_FORMAT(t.work_time,'%Y%m')
) t2
on t1.m = t2.m

3.缺点

假如现在不是12月份例如现在是10月份,很明显11、12月份一定没有数据,这样的写法会将没有到来的月份展示出来即为0.

4.正真的需求

展示数据到当前月份,假如现在是9月份,那就统计数据到9月份,9月份也统计。如果这9个月中有的月份没有数据,不能不展示,也不能展示位空,必须使用0代替。

怎么写?

mysql查询出当前年份的12个月相关推荐

  1. mysql查询出bigd_BigData-MySQL总结大全(一)苏暖人

    BigData之MySQL总结大全 1.选择:select * from table where 范围 2.插入:insert into table(field1,field2) values(val ...

  2. mysql查询出的数据转换为数字,关于sql:在MySQL查询中将文本转换为数字

    是否可以在MySQL查询中将文本转换为数字? 我有一列带有标识符的列,该标识符由名称和数字组成,格式为"名称-数字". 该列具有VARCHAR类型. 我想根据数字(具有相同名称的行 ...

  3. mysql查询出过去一个月_mysql查询过去一月半年一年的时间

    复制代码代码如下: create table if not exists t ( id int, addTime datetime default '0000-00-00 00:00:00′ ) 添加 ...

  4. MySQL: 查询出student表中每门课都大于80分的学生姓名

    查询出student表中每门课都大于80分的学生姓名 说明(小技能):获取某学生它所有课程的分数最小的一科min(score) > 80 进行分析比较即可, 连分数最小的一科都大于80分,那其他 ...

  5. Mysql:获取距今最近12个月的数据

    获取最近12个月的数据 并将没有数据的月份置为0 SELECT IFNULL(b.value,0) AS VALUE,a.name /*将value初始化为0 并将其作为value列下的数据*/FRO ...

  6. MySQL查询出的时间与实际时间相差八小时

    今天通过Navacat查询数据,但是发现时间格式的字段比实际的时间少了八个小时,查找了一些资料后发现只需要在配置文件中数据库的url加一个参数serverTimezone=GMT%2B8即可,这个参数 ...

  7. 用mysql查询出一年的四个季度

    最近正好写到了这个sql,整理出如下供大家参考. --mysql8.0写法 select * from t_problem_record rd --判断月份是否大于等于4 where DATE_FOR ...

  8. mysql查询出过去一个月_Mysql查询今天、昨天、7天、近30天、本月、上一月 数据...

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  9. MySql查询出两张表中不同的数据

    建表 表1 CREATE TABLE Student(SId VARCHAR(10),Sname VARCHAR(10),Sage DATETIME,Ssex VARCHAR(10)); 插入测试数据 ...

最新文章

  1. Understand Event-Driven Software Architecture
  2. Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
  3. MFC DLL 的三种类型
  4. word自定义模板的存储位置
  5. 继承的CSS类在Chrome开发者工具里的显示
  6. 编写批处理文件-------基础
  7. TQ210——下载总结
  8. 贝壳宣布内部调查实质性完成
  9. 【有趣】Python之禅
  10. msvcr80.dll 问题
  11. 诺基亚c7微信 服务器忙,诺基亚C7怎么刷机
  12. 64位计算机安装xp,练习u盘如何安装XP 64位系统
  13. Maven 配置阿里云镜像
  14. moment.js时间格式转换
  15. activiti选择上一步下一步处理人
  16. python微信朋友圈分享功能_利用Python让你的微信朋友圈与众不同,更加高大上
  17. spring boot高校二手教材管理平台 毕业设计-附源码231057
  18. 麒麟合盛(APUS)李涛:APUS云重新定义“云联邦”
  19. 台式计算机风扇为什么光散热,电脑噪音太大了,要如何降噪?其实不光是风扇的事!...
  20. 电影mysql设计_mysql – 如何设计电影数据库?

热门文章

  1. 多重积分积分区域奇偶对称性化简积分
  2. python3英文视频课程_Python3国外著名视频教程英文 87课
  3. 游戏中的抗锯齿技术Anti-Alasing提炼总结
  4. 计算机新建怎么没有表格,为何我的电脑新建项目里没有EXCEL表格呢,
  5. websocket使用springboot实现的详细步骤
  6. 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
  7. 计算机内存与外存有什么特点,为什么计算机要分内存与外存,内存与外存各有什么特点?...
  8. 小心肝队-冲刺日志(第四天)
  9. Win2003 服务器安装及设置教程 系统设置篇
  10. 大家来参与一个外包项目的需求分析,考察自己是否有当项目经理/总监的潜力