MYSQL如何将两行合二为一

时间:2014-11-19 17:57:38

标签: mysql

我有一张表格,其中记录了不同商店的开盘和关门时间。这是一个例子:

enter image description here

正如您所看到的,打开和关闭时间位于不同的行中。我需要将所有内容放在同一行中,并在最后创建一个新列,用于计算WORKSTATION_OPEN和WORKSTATION CLOSE之间的小时数。基本上我想要实现的是:

enter image description here

2 个答案:

答案 0 :(得分:0)

你加入表自己,rtl_log_id我猜...

select
    opentimes.datetime as open,
    closetimes.datetime as close,
    closetimes.datetime-opentimes.datetime as duration 
from
    (...) as opetimes,(...) as closetimes
where
    opentimes.trans_typecode=OPEN 
    and closetimes.trans_typecode=CLOSE 
    and opentimes.rtl_log_id=close_times.rtl_log_id;

答案 1 :(得分:0)

您可以按rt_log_id或business_day进行分组,并在日期时间内执行group concat

然后你在mysql外面处理那个组合字符串。

http://sqlfiddle.com/#!2/ff24a6/2