需求是:

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

有可能是 只有上班记录,,或者是只有下班的记录。如何关联全查,一边为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. leetcode-15双周赛-1287-有序数组中出现次数超过25%的元素

    题目描述: 方法一:二分法 class Solution: def findSpecialInteger(self, arr: List[int]) -> int: span = len(arr ...

  2. pytorch数据预处理错误

    出错: Traceback (most recent call last): File , in <module> train_model(model_conv, criterion, o ...

  3. Delphi读取和写入utf-8编码格式的文件

    读取UTF-8格式的文件内容 function LoadUTF8File(AFileName: string): string; var ffileStream:TFileStream; fAnsiB ...

  4. element菜单默认展开和选中

    这两个属性, :default-openeds="openeds" default-active="/networkConfig"中设置的要与数组中的index ...

  5. python中的__init__

    __init__ __init__中__表示系统默认命名,init是初始化的意思.由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去.以学生类为例,通过定义 ...

  6. myeclipse2017使用总结

    1.之前的myeclipse 2010项目导入后,需要配置项目发布内容,否则class.lib.web.xml等文件不会自动发布到tomcat中:

  7. POI 讀取EXCEL

    /*** 獲取單元格數值* * @param cell* @return*/private String getCellValue(Cell cell) {String cellValue = &qu ...

  8. dex2jar反编译大文件内存溢出的问题

    @echo off REM better invocation scripts for windows from lanchon, release in public domain. thanks! ...

  9. python中6个序列的内置类型分别是什么,列表和元组的异同有哪些

    1.Python中6个序列的内置类型分别是什么? Python包含6中内建的序列,即列表.元组.字符串.Unicode字符串.buffer对象和 xrange 对象.序列通用的操作包括:索引.长度.组 ...

  10. spring boot 尚桂谷学习笔记06 异常处理 ---Web

    ------错误处理机制------ 默认效果 1 返回一个默认的错误页面 浏览器发送请求的请求头:优先接收 text/html 数据 客户端则默认响应json数据 : accept 没有说明返回什么 ...