SQL——查询一段时间内每天的数据,按天将数据封装进行封存
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——查询一段时间内每天的数据,按天将数据封装进行封存的更多相关文章
- sql查询某段时间内的数据
查询半小时内数据的方法 1.select * from 表名 where datediff(minute,createtime,getdate())<30 2.select * from 表名 ...
- sql 查询一段时间内某个时间点数据
SELECT CONVERT(VARCHAR(10), dtCreateTime, 120) AS dtStatisticsCreateDate, COUNT(1) AS nStatisticsC ...
- SQL查询某一字段重复的数据
查询出重复记录 select * from 数据表 WHERE 重复记录字段 in ( select 重复记录字段 from 数据表 group by 重复记录字段 having count(重复记 ...
- 用sql获取一段时间内的数据
我把我CSDN写的 搬来博客园了.. SELECT * FROM 表名 WHERE timestampdiff(MINUTE, SYSDATE(), send_time) <=60 AND ...
- postgre查询一段时间内的数据
select * from zaiko where createtime between (now() - interval '3 Days') and now() ; select * from z ...
- sql查询当天,一周,一个月数据的语句
--查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info w ...
- Sql查询除ID以外相同的数据
id NAME AGE1 n1 12 n1 13 n2 24 n2 25 n22 ...
- sql 查询不存在左表的数据
select * from zyz_mgr_wlcyiduifu a left join WLCInformation b ona.wlcId=b.WLCInvestorApplyID where b ...
- SQL查询某个时间段共多少条数据
select COUNT(*) from (表名) where (时间字段)between '2012-05-01 00:00:00' and '2012-05-31 23:59:59' 获取ASP. ...
随机推荐
- 使用CollectionViewSource,通过Xaml绑定自动排序
这个是一个完成分组和排序功能的Datagrid,同样只是简单的绑定到List集合,后台不用额外的代码,所有功能都在Xaml中完成: 首先在UI中定义CollectionViewSource资源,在这里 ...
- iOS开发-- 使用TFHpple解析html
占坑 http://www.raywenderlich.com/14172/how-to-parse-html-on-ios
- ElasticSearch(一)-- 简介
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...
- Android使用Fragment实现TabHost效果
现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上, ...
- distri.lua线程间通信的设计
首先简单介绍下distri.lua中的线程设计方案. distri.lua提供一个API函数fork用于创建新的C线程,这个C线程运行独立的lua虚拟机,为了在各线程之间通信 每个线程都会创建一个ch ...
- php面试题之一——HTML+CSS(基础部分)
一.HTML + CSS部分 1. 请说明 HTML 文档中 DTD 的意义和作用(酷讯) DTD,文档类型定义,是一种保证 html 文档格式正确的有效方法,在解析网页时,浏览器将使用 DTD 来检 ...
- wpgcms---导航高亮显示
在使用wpgcms做项目的时候,有时候三级栏目默认是没有高亮显示的一级导航的,例如:文章详情页要对应的文章栏目进行高亮显示,三级单篇页要对应栏目是高亮显示.具体做法是: 首先看获取导航的方式: {% ...
- C#学习之委托和事件
C#学习中,关于委托和事件的一些见解: 一.C语言中的函数指针 想要理解什么是委托,就要先理解函数指针的概念.所谓函数指针,就是指向函数的指针(等于没说-.-).比如我定义了两个函数square和cu ...
- HDOJ HDU 1850 Being a Good Boy in Spring Festival
Description 一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天早起 给爸妈用心地 ...
- Understanding Flash: Blocks, Pages and Program / Erases
https://flashdba.com/2014/06/20/understanding-flash-blocks-pages-and-program-erases/ In the last pos ...