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. ...
随机推荐
- Hibernate常见面试题(转)
在Java J2EE方面进行面试时,常被问起的Hibernate面试问题,大多都是针对基于Web的企业级应用开发者的角色的.Hibernate框架在Java界的成功和高度的可接受性使得它成为了Java ...
- D - Replace To Make Regular Bracket Sequence
You are given string s consists of opening and closing brackets of four kinds <>, {}, [], (). ...
- shell 脚本部分变量含义
$ # 传递到脚本的参数个数$ * 以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个$ $ 脚本运行的当前进程I D号$ ! 后台运行的最后一个进程的进程I D号$ @ 与 ...
- redis集群,主从,持久化
1,单机版 先安装gcc yum install gcc-c++ 然后解压源码包,执行编译命令make(C语言写的,需要gcc环境),最后安装Redis,需要通过PREFIX指定安装路径make ...
- 1.7Oob同类中不同方法间的互相调用
import java.util.Scanner; public class Bill { public static final double RATE=150.0; 这里没有创建getter和se ...
- angular4 辅助路由
1.辅助路由 2. 创建chat组件 ng g component chat 3. 组件html css: 1 2 3 4 5 6 7 .chat{ background:green; hei ...
- CALayer的子类之CAShapeLayer
一,CAShapeLayer介绍 * CAShapeLayer继承自CALayer,属于QuartzCore框架,可使用CALayer的所有属性. CAShapeLayer是在坐标系内绘制贝塞尔曲 ...
- iOS中的静态库与动态库,区别、制作和使用
如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图.第三方登录分享等等,这时候我们就要打包成库了.库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名.动态库: ...
- [administrator][driver] driverctl 是如何在udev上层管理设备驱动的
https://gitlab.com/driverctl/driverctl driverctl 处于 kernel 与 udev做设备与驱动管理的上层. 理解什么叫override是本文的核心内容. ...
- Flink – submitJob
Jobmanager的submitJob逻辑, /** * Submits a job to the job manager. The job is registered at the library ...