MySQL数据透视表创建具有开始,结束时间的活动日志文件

时间:2016-09-20 11:55:18

标签: mysql

我是MySQL新手。

我有这样的Set数据。

     Tester     datetime_start      Event       Lot_Num
     Tester#1   20/9/2016 13:21     Down    
     Tester#1   20/9/2016 13:26     LoadTP      Lot_A
     Tester#1   20/9/2016 13:38     LotStart    Lot_A
     Tester#1   20/9/2016 16:19     LotEnd      Lot_A
     Tester#1   20/9/2016 16:19     Idle    
     Tester#1   20/9/2016 16:20     Down    
     Tester#1   20/9/2016 16:23     LoadTP      Lot_B
     Tester#1   20/9/2016 16:35     LotStart    Lot_B
     Tester#1   20/9/2016 17:12     Down        Lot_B
     Tester#1   20/9/2016 17:36     LotEnd      Lot_B

我需要帮助才能使上面的数据看起来像这样:

    Tester      Lot_Num Time_Start      Time_End
    Tester#1    Lot_A   20/9/2016 13:26     20/9/2016 16:19
    Tester#1    Lot_B   20/9/2016 16:23     20/9/2016 17:36

我不知道该怎么做,我尝试做这样的事情。

    SELECT  Tester,Lot_Num,Event,
        (case when Event ='LoadTP' then datetime_start end)as Time_Start,
        (case when Event ='LotEnd' then datetime_start end)as Time_End

    from T_Utilization

但现在我的桌子看起来像这样。

                        Time_Start      Time_End
    Tester#1    Lot_A   20/9/2016 13:26 
    Tester#1    Lot_A                   20/9/2016 16:19
    Tester#1    Lot_B   20/9/2016 16:23 
    Tester#1    Lot_B                   20/9/2016 17:36

需要关于Mysql的帮助,请。

1 个答案:

答案 0 :(得分:0)

您可以使用条件聚合

SELECT Tester, LotNum, 
       MAX(CASE WHEN Event ='LoadTP' THEN datetime_start END) AS Time_Start,
       MAX(CASE WHEN Event ='LotEnd' THEN datetime_start END) AS Time_End
FROM T_Utilization
WHERE LotNum IS NOT NULL
GROUP BY Tester, LotNum

https://stackoverflow.com/a/24007718/6793476