mysql 根据起止年月 查询所选年月的数据

1、时间字段是datetime类型

2、需要用到中间表,表结构和数据链接下载

https://pan.baidu.com/s/1sAQ78e3Ao-KwvYJlaipbKQ

3、前两个 adddate 日需要在数据库写死 从每日的-01开始,-最后一个日期同理xxxx-xx-31

4、sql

select
    bri.orgid,
    years.date,
    date_format(years.date, ‘%Y-%m‘) AS years,
    bri.entrytime a,
    sum( case when bri.status = ‘1‘ then 1 else 0 end ) as num,
    sum( case when bri.status = ‘1‘ and bri.sex=‘1‘ then 1 else 0 end  ) as numman,
    sum( case when bri.status = ‘1‘ and bri.sex=‘2‘ then 1 else 0 end  ) as numgrid

from
    ( select adddate(‘2018-10-01‘, INTERVAL numlist.id month) as ‘date‘,
        numlist.id
    from ( select n100.i * 1 as id from num as n100 ) as numlist
    where adddate(‘2018-10-01‘, INTERVAL numlist.id month) <= ‘2019-05-31‘ ) years

left join building_resident_info bri on date_format(years.date, ‘%Y-%m‘)  = date_format(bri.entrytime, ‘%Y-%m‘) and bri.status=‘1‘

and bri. status = ‘1‘
and bri.orgid like concat(‘37.02.82‘, ‘%‘)
group by
    years.date

5、结果

如有疏漏,请指正!谢谢。

原文地址:https://www.cnblogs.com/w-yu-chen/p/10259430.html

时间: 2024-12-10 01:14:46

mysql 根据起止年月 查询所选年月的数据的相关文章

mysql 根据起止年份 查询所选年份数据

1.时间字段是datetime类型 2.需要用到中间表,表结构和数据链接下载 https://pan.baidu.com/s/1sAQ78e3Ao-KwvYJlaipbKQ 3.前两个 adddate 月日需要在数据库写死 从每年的-01-01开始,-最后一个日期同理xxxx-12-31 4.sql select bri.orgid, date_format(years.date, '%Y') AS years, sum( case when bri.status = '1' then 1 el

Mysql中使用存储过程返回查询多个表的数据信息

-- 测试手机号 call P_Base_CheckLogin('15584463676'); -- 测试登录名 call P_Base_CheckLogin('sch000001') -- 测试身份证号 call P_Base_CheckLogin('080428402304032042') -- 测试学生手机号 call P_Base_CheckLogin('13019212198') drop PROCEDURE IF EXISTS P_Base_CheckLogin; create pr

mysql 根据某一年 查询12个月的数据

1.时间字段是datetime类型 2.需要用到中间表,表结构和数据链接下载 https://pan.baidu.com/s/1sAQ78e3Ao-KwvYJlaipbKQ 3.前两个 adddate 月日需要在数据库写死 从每年的-01-01开始,-最后一个日期同理xxxx-12-31 4.下面是sql select concat(month(years.date),'月') as year, years.date, date_format(years.date, '%Y-%m') AS ye

横瓜先生纵论NOSQL与MYSQL实现最热最新查询的分页性能比较

[状元]横瓜-PHP教父(601069289)  20:45:59 大家谈谈NOSQL与MYSQL的差距 NOSQL与MYSQL实现最热最新查询的分页性能比较 MYSQL千亿级要优化的,用起来的不敏捷 如果NOSQL一个语句能搞顶,何必用MYSQL 都没有比较过吗 [状元]Fang(1033289127)  20:46:29 nosql 是 sql 的补充啦 [元帅]IT柏拉图(2500875)  20:46:53 mongodb其实查询上的性能并不会比mysql多太大,只是sock有优势,真正

mysql基础-数据库多表查询-记录(六)

0x01 MySQL多表查询和子查询 联结查询:事先将两张或者多张表join,根据join的结果进行查询 cross join:交叉联结  用的少, 相当于 (a+b)*(c+d+e) 所得结果的形式   用的少 自然联结  --- 只能在两者相等的情况下才能建立连接 等值联结:把相同的字段进行等值连接 外联结: 左外联接:只保留出现在左外连接元算之前(左边)的关系中的元组(以左表为准,) left_tb LEFT JOIN right_tb ON 条件 右外联接:只保留出现在右外连接元算之后(

MySQL:动态开启慢查询日志(Slow Query Log)

前言 在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一.要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改 慢日志设置方式 写入文件 写入数据库 实践操作 方式一:写入文件 编辑my.conf 中修改 log_slow_queries 的日志地址 $ cd /etc/mysql $ cat my.cnf |grep slow  log_slow_queries = /data/logs/mysql/mysql-slow.log $ sudo /etc

ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询

ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询 1.demo简介 这是一个由ExtJs4.2,Mysql5.5 ,Struts2,Hibernate3.3构成的简单web项目,本人由于最近在研究ExtJs所以特意做了这个Demo,方便有需要的同学查看,也给自己留下学习笔记吧.需要特别说明我这里并没有整合Struts,Hibernate,这两个工具是独立运行的.转载请注明:http://blog.csdn.net/qiuzhping/article/details/

mysql根据汉字拼音排序查询

例如现在有一张数据表label,字段为id.name,此表的字符集设置为gb2312,以gb2312_chinese_ci整理. 设置InnoDB引擎的字符集也为简体中文,且整理为gb2312_chinese_ci. 查询语句如下: select * from label order_by name collate gb2312_chinese_ci; 效果如下: tip:有时候结果不是很准确,不知道是不是因为字符集选择的不当导致的,知道的朋友,请解答下,谢谢! mysql根据汉字拼音排序查询,

mysql简单的单表查询详解

mysql简单的单表查询详解 MySQL的查询操作: 单表查询:简单查询 多表查询:连续查询 联合查询: 选择和投影: 投影:挑选要显示的字段 选择:挑选符合条件的行 投影:SELECT 字段1, 字段2, ... FROM tb_name;  SELECT * FROM tb_name; 选择:SELECT 字段1, ... FROM tb_name WHERE 子句; 布尔条件表达式 mysql> CREATE TABLE students (SID INT UNSIGNED AUTO_IN