DROP TABLE IF EXISTS `T_ROTA_RECORD`;

CREATE TABLE `T_ROTA_RECORD` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`duty_date` date NOT NULL DEFAULT '0000-00-00' COMMENT '值班日期',
`duty_turn` tinyint(4) NOT NULL DEFAULT '' COMMENT '值班班次,0:全天班 1:早班 2:中班 3:晚班',
`provider_id` int(11) DEFAULT '' COMMENT '值班对象ID,T_ROTA_PROVIDER.id',
`is_delete` tinyint(2) NOT NULL DEFAULT '' COMMENT '是否被删除:0-否;1-是',
`org_code` varchar(128) DEFAULT '""' COMMENT '企业或部门编码',
`is_noticed` tinyint(2) NOT NULL DEFAULT '' COMMENT '是否已经通知(0:否,1:是)',
`update_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '数据更新时间,默认为当前时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='值班记录表'; /*Data for the table `T_ROTA_RECORD` */ insert into `T_ROTA_RECORD`(`id`,`duty_date`,`duty_turn`,`provider_id`,`is_delete`,`org_code`,`is_noticed`,`update_time`) values (1,'2018-05-25',1,1,0,'330100.000002.001',0,'2018-05-25 11:00:24'), (2,'2018-05-25',2,2,0,'330100.000002.001',0,'2018-05-25 11:00:53'), (3,'2018-05-25',3,3,0,'330100.000002.001',0,'2018-05-25 11:01:28'), (4,'2018-05-26',1,2,0,'330100.000002.001',0,'2018-05-25 11:02:25'), (5,'2018-05-27',1,1,0,'330100.000002.001',0,'2018-05-25 11:02:52'), (6,'2018-05-25',1,4,0,'330100.000002.002',0,'2018-05-25 11:09:34'), (7,'2018-05-26',1,5,0,'330100.000002.002',0,'0000-00-00 00:00:00'), (8,'2018-05-26',2,4,0,'330100.000002.002',0,'2018-05-25 11:10:18'), (9,'2018-05-26',3,6,0,'330100.000002.002',0,'2018-05-25 11:10:44'), (10,'2018-05-27',0,4,0,'330100.000002.002',0,'0000-00-00 00:00:00');

查询一段时间内每天的数据,按天将数据封装进行封存,同一天的数据封装成list,如何实现呢?

抽象成一对多的关系,即同一天对应多条数据,同一天必须保证是同一条数据。

SELECT
a.`id`,
a.`duty_date`,
b.`duty_turn`,
b.provider_id,
b.is_delete,
b.org_code,
b.is_noticed,
b.update_time
FROM
(SELECT
id,
duty_date
FROM
T_ROTA_RECORD
WHERE is_delete = 0
-- AND org_code = '330100.000002.001'
GROUP BY duty_date) a
LEFT JOIN
(SELECT
duty_date,
duty_turn,
provider_id,
is_delete,
org_code,
is_noticed,
update_time
FROM
T_ROTA_RECORD
WHERE is_delete = 0
-- AND org_code = '330100.000002.001'
GROUP BY duty_date,
duty_turn ) b
ON a.`duty_date` = b.`duty_date` WHERE b.org_code = '330100.000002.001'
AND a.duty_date >= '2018-05-25'
AND a.duty_date <= '2018-05-28'
-- and b.provider_id = 1
ORDER BY a.`duty_date`, b.duty_turn

这里的a.id 不可省略,只有加上才能表示同一天是同一条数据。

SQL——查询一段时间内每天的数据,按天将数据封装进行封存的更多相关文章

  1. sql查询某段时间内的数据

    查询半小时内数据的方法 1.select * from 表名 where datediff(minute,createtime,getdate())<30 2.select * from 表名 ...

  2. sql 查询一段时间内某个时间点数据

     SELECT  CONVERT(VARCHAR(10), dtCreateTime, 120) AS dtStatisticsCreateDate, COUNT(1) AS nStatisticsC ...

  3. SQL查询某一字段重复的数据

    查询出重复记录 select * from 数据表 WHERE 重复记录字段 in ( select 重复记录字段 from  数据表 group by 重复记录字段 having count(重复记 ...

  4. 用sql获取一段时间内的数据

    我把我CSDN写的   搬来博客园了.. SELECT * FROM 表名 WHERE timestampdiff(MINUTE, SYSDATE(), send_time) <=60 AND ...

  5. postgre查询一段时间内的数据

    select * from zaiko where createtime between (now() - interval '3 Days') and now() ; select * from z ...

  6. sql查询当天,一周,一个月数据的语句

    --查询当天:  select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info w ...

  7. Sql查询除ID以外相同的数据

    id    NAME    AGE1    n1         12    n1         13    n2         24    n2         25    n22       ...

  8. sql 查询不存在左表的数据

    select * from zyz_mgr_wlcyiduifu a left join WLCInformation b ona.wlcId=b.WLCInvestorApplyID where b ...

  9. SQL查询某个时间段共多少条数据

    select COUNT(*) from (表名) where (时间字段)between '2012-05-01 00:00:00' and '2012-05-31 23:59:59' 获取ASP. ...

随机推荐

  1. Java -- POI -- 入门使用以及简单介绍

    1.创建工作簿 (WORKBOOK) HSSFWorkbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputSt ...

  2. Android图片管理组件(双缓存+异步加载)

    转自:http://www.oschina.net/code/snippet_219356_18887?p=3#comments ImageManager2这个类具有异步从网络下载图片,从sd读取本地 ...

  3. linux-Centos 7下tftp-server服务的安装与配置

    TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间 进行简单文件传输的协议,提供不复杂.开销不大的文件传输服 ...

  4. ios时间差

    /** * @method * * @brief 获取两个日期之间的天数 * @param fromDate       起始日期 * @param toDate         终止日期 * @re ...

  5. 170828、Eclipse Java注释模板设置详解以及版权声明

    编辑注释模板的方法:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素 ...

  6. MyEclipse中的几种查找方法

    在编程中常常需要用到查找功能,这里根据日常的使用总结一下常用的集中查找方法 Ctrl+H:在MyEclipse中打开Search弹出框,或者在菜单中打开Search弹出框, 定位到 File Sear ...

  7. SmartStore.Net、NopCommerce 全局异常处理、依赖注入、代码研究

    以下是本人最近对NopCommerce和SmartStore.net部分代码的研究和总结,主要集中于:依赖注入.异常处理.对象映射.系统缓存.日志这些方面,供大家参考. NOP 3.8 /// < ...

  8. 在eclipse中导入hadoop jar包,和必要时导入源码包。

    1. 解药hadoop包 1, C:\hadoop-2.7.2\share\hadoop  提取出所有的 jar 包, 到 _lib 文件夹下 2,将有含有source 名称的jar包 剪切出来 3, ...

  9. Codeforces 670E - Correct Bracket Sequence Editor - [线段树]

    题目链接:https://codeforces.com/contest/670/problem/E 题意: 给出一个已经匹配的括号串,给出起始的光标位置(光标总是指向某个括号). 有如下操作: 1.往 ...

  10. Codeforces 677D - Vanya and Treasure - [DP+优先队列BFS]

    题目链接:http://codeforces.com/problemset/problem/677/D 题意: 有 $n \times m$ 的网格,每个网格上有一个棋子,棋子种类为 $t[i][j] ...