Search code examples
mysqlgroup-concat

multiple GROUP CONCAT


i have sql data and query

http://sqlfiddle.com/#!9/749bec/1

the result of current query is not what i need

SELECT 
satker.kode_satker,GROUP_CONCAT(DISTINCT(data.map) ,'-',value SEPARATOR '\n') as newvalue 
FROM satker 
left join data on data.kode_satker=satker.kode_satker 
GROUP BY data.kode_satker

because it show

kode_satker     newvalue
100     A-100 A-200 B-400 B-100
200     C-100 A-100 A-100

I need the new query show

kode_satker     newvalue
100     A-300 B-500
200     A-200 C-100

Any idea??


Solution

  • Here is the solution with correct order of newvalue

    SELECT kode_satker,group_concat(map,'-',valuesum order by map) as new_value From ( Select satker.kode_satker, data.map, sum(data.value) as valuesum FROM satker left join data on data.kode_satker=satker.kode_satker group by satker.kode_satker, data.map) t Group by kode_satker

    Result: kode_satker new_value 100. A-300,B-500 200. A-200,C-200