2017-10-04 72 views
0

我有两张表作为表A和表B.表A包含几个具有相同emp_id和日期的记录,如下所示。但是时间列具有不同的值。现在我想将这两个记录作为一个记录插入表B.表B的预期输出显示如下。如何在Mysql中将多行作为一行插入到另一个表中

表A

enter image description here

表B [预期输出]

enter image description here

+0

你为什么要这样做? – Strawberry

+0

@Strawberry对于一天中的用户,可能有两个不同的时间。如果没有两个不同的时间,它应该在表B中存储为NULL值。 – colombo

+0

为什么不把它们分组?还有什么发生在身份证? –

回答

0

这将是排序逻辑的,你需要显示该结果。不知道它会工作完全没有与您的特定表等,这也将选择数据和这样的显示,但不会将其插入测试它(不知道你为什么会需要一个)

SELECT 
id, 
emp_id 
date, 
MAX(case when row = 1 then time end) in1, 
MAX(case when row = 2 then time end) in2 
FROM 
(
SELECT id, emp_id, date, time 
row_number() over(partition by id) row 
FROM TableA 
) a 
GROUP BY date; 

让我知道如果你有问题

相关问题