需求是:

上班打卡记录   和  下班打卡记录  是分别是两条数据,现在是要合并为一条数据,并且封装成一个实体。

有可能是 只有上班记录,,或者是只有下班的记录。如何关联全查,一边为null或者另一边为null都需要显示出来。

SELECT * FROM
(
SELECT t1.*,t2.* FROM
(
SELECT a.id AS aid,a.location AS alocation ,DATE_FORMAT(a.time,'%Y-%m-%d') AS timePM FROM biz_attendance a WHERE a.`status`=1 AND DATE_FORMAT(a.time,'%Y-%m')=DATE_FORMAT('2018-04-11','%Y-%m')
) t1
LEFT JOIN
(
SELECT b.id AS bid,b.location AS blocation,DATE_FORMAT(b.time,'%Y-%m-%d') AS timeAM FROM biz_attendance b WHERE b.`status`=2 AND DATE_FORMAT(b.time,'%Y-%m')=DATE_FORMAT('2018-04-11','%Y-%m')
) t2
ON t1.timePM = t2.timeAM

) flag1

UNION

SELECT * FROM
(
SELECT t1.*,t2.* FROM
(
SELECT a.id AS aid,a.location AS alocation ,DATE_FORMAT(a.time,'%Y-%m-%d') AS timePM FROM biz_attendance a WHERE a.`status`=1 AND DATE_FORMAT(a.time,'%Y-%m')=DATE_FORMAT('2018-04-11','%Y-%m')
) t1
RIGHT JOIN
(
SELECT b.id AS bid,b.location AS blocation,DATE_FORMAT(b.time,'%Y-%m-%d') AS timeAM FROM biz_attendance b WHERE b.`status`=2 AND DATE_FORMAT(b.time,'%Y-%m')=DATE_FORMAT('2018-04-11','%Y-%m')
) t2
ON t1.timePM = t2.timeAM

) flag2

Mysql 列变行其中一种做法。的更多相关文章

  1. mysql列转行 行转列

    列转行 SELECT flag ,substring_index(substring_index(t.context,), ) as result FROM ( select 'aa' as flag ...

  2. Linq 分组(group by)后列变行

    表一: 表二: 已知表一的List,想得到表二的结果: var query = from c in t.AsEnumerable() group c by new { pingming = c.Fie ...

  3. mysql 中实现行变列

    前言: mysql行列变化,最难的就是将多个列变成多行,使用的比较多的是统计学中行变列,列变行,没有找到现成的函数或者语句,所以自己写了存储过程,使用动态sql来实现,应用业务场景,用户每个月都有使用 ...

  4. sqlserver 字段内容做in条件 列变成行显示

    sqlserver中 字段内容做in条件用到方法:CHARINDEX(value,situation) 列变行显示用到:stuff 详情自行查找. 例子: stuff((select ','+name ...

  5. HNU13028Attacking rooks (二分匹配,一行变多行,一列变多列)

    Attacking rooks Time Limit: 20000ms, Special Time Limit:50000ms, Memory Limit:65536KB Total submit u ...

  6. 代码:PC 链接列表面板border的一种做法(每行之间有分割线)

    PC 链接列表面板,border的一种做法 做页面经常遇到一种问题,上面是标题,下面是单行链接列表.为了保证后台套页面方便,所有列表项必须完全一样.但我们无法解决第一行或最后一行多出来的分割线. 使用 ...

  7. python 存储引擎 mysql(库,表, 行) 单表多表操作 (foreign key) sql_mode pymysql模块讲解

    ##################总结############### mysql 常用数据类型 整型:tinyint  int(42亿条左右)  bigint 小数:float double dec ...

  8. MySQL服务 - MySQL列类型、SQL模式、数据字典

    MySQL列类型的作用: 列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符.数字等).所能占据的最大存储空间.字符长度(定长或变长). ...

  9. Pivot运算符用于在列和行之间

    本文导读:T-SQL语句中,Pivot运算符用于在列和行之间对数据进行旋转或透视转换,PIVOT命令可以实现数据表的列转行,同时执行聚合运算,UNPIVOT则与其相反,实现数据的行转列. PIVOT通 ...

随机推荐

  1. 英语单词deprecated

    deprecated 来源——fdisk /dev/sdb [root@centos65 ~]# fdisk /dev/sdb WARNING: DOS-compatible mode is depr ...

  2. Java反射学习-5 - 反射复制对象

    通过反射方式复制对象: package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Fi ...

  3. HDU - 6621 K-th Closest Distance 主席树+二分答案

    K-th Closest Distance 主席树第二波~ 题意 给你\(n\)个数\(m\)个询问,问\(i\in [l,r]\)计算每一个\(|a_{i}-p|\)求出第\(k\)小 题目要求强制 ...

  4. CocoaPods中pod search报错的解决办法

    pod search报错的原因: 每次使用pod search命令的使用会在该目录下生成一个search_index.json文件,会逐渐的增大,文件达到一定大小后,ruby解析里面的json字符就会 ...

  5. 关于css3 Animation动画

    在介绍animation之前有必要先来了解一个东西,那就是“keyframes”,我们把他叫做“关键帧”: 在使用transition制作一个简单的transition效果时,包括了初始属性,最终属性 ...

  6. python 字符串str和json格式转换

    最近在写一个脚本,需要处理从excel中读取的数据,发现读取的json格式数据进行转换时报错 ValueError: Expecting property name enclosed in doubl ...

  7. spring boot 尚桂谷学习笔记05 ---Web

    ------web 开发登录功能------ 修改login.html文件:注意加粗部分为 msg 字符串不为空时候 才进行显示 <!DOCTYPE html> <!-- saved ...

  8. flink-training-course

    目录 flink-training-course 大数据领域顶级盛会 Flink Forward Asia 2019 详情

  9. Apache Shiro 会话+缓存+记住我(三)

    1.会话管理SessionDao和SessionManager 1)安装Redis 2)依赖 <dependency> <groupId>redis.clients</g ...

  10. undefined,null,!,!=之间的关系

    1.!和!=的关系 2.null 和0的关系