SQL将两个记录合并为一个

时间:2014-01-13 15:28:26

标签: mysql

我想将以下两条记录合并为一条记录。

PCNUMMER EZONE1  EDATUM1     EZONE2
10581    E       2013-06-03  A
10581    B       2013-11-14  NULL
10987    A       2013-11-11  NULL

我想拥有的是

PCNUMMER EZONE1  EDATUM1     EZONE2
10581    B       2013-06-03  A
10987    A       2013-11-11  NULL

因为EZONE1 ='B'的记录日期是在EZONE1 ='E'的记录日期之后。但是当data ='NULL'时,必须获取旧记录的数据(如果不是NULL,并且如果有较旧的记录)

那我怎么得到这个结果呢?

1 个答案:

答案 0 :(得分:0)

可能的方法,利用GROUP_CONCAT将忽略空值: -

SELECT PCNUMMER, SUBSTRING_INDEX(GROUP_CONCAT(EZONE1 ORDER BY EDATUM1 DESC), ',', 1), MAX(EDATUM1), SUBSTRING_INDEX(GROUP_CONCAT(EZONE2 ORDER BY EDATUM1 DESC), ',', 1)
FROM SomeTable 
GROUP BY PCNUMMER