我是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的帮助,请。
答案 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