我想将以下两条记录合并为一条记录。
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,并且如果有较旧的记录)
那我怎么得到这个结果呢?
答案 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