【问题标题】:Sql join in the same tabelsql连接同一张表
【发布时间】:2017-07-17 20:41:52
【问题描述】:

我有 sql 表

ikey     Date            iDiverkey     Status 
----    ------           ---------     -------
1     27/02/2017 15:26     1156          1   
2     27/02/2017 17:26     1156          2

Note 1 ---> Trip Start
     2 ---> Trip stop

我需要输出为

Date           iDiverKey       Start      Stop
27/022017        1156          15:26      17:26

请帮我获取输出

【问题讨论】:

  • 这个数据集是否恰当地代表了问题?
  • 单个 iDiverkey 会有两个不同的日期吗?比如今天晚上开始,明天早上停止??
  • 不,它可能有相同的日期以及不同的日期也
  • 那么输出中会出现哪个日期??开始日期还是结束日期??
  • 开始日期必须到

标签: mysql sql join


【解决方案1】:

假设您想要的是每个 iDriverkey 的每个日期的第一个开始日期(我假设状态 1)和最后一个结束日期(我假设状态 2),然后是这样的:-

SELECT DATE(`Date`), 
        iDriverkey,
        MIN(IF(Status = 1, TIME(`Date`), NULL)) AS `Start`,
        MAX(IF(Status = 2, TIME(`Date`), NULL)) AS `Stop`
FROM somedatatable
GROUP BY DATE(`Date`), 
        iDriverkey

【讨论】:

    猜你喜欢
    • 2016-11-27
    • 2017-07-27
    • 2015-02-26
    • 1970-01-01
    • 2011-09-30
    • 2021-09-30
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多