Unpivot динамических столбцов для строк – отсутствие данных из последних столбцов

У меня много таблиц, как показано ниже, а имена столбцов различаются для каждой таблицы.

 id city aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj kkkk llll mmmm   
 - ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
 1 LAX 0,0 0,0 1,0 2,5 0,0 3,0 0,0 0,0 1,0 0,0 1,6 0,0 1,1
 2 SFO 1.7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.4
 3 NYC 0,0 1,0 0,0 0,0 4,0 0,0 0,0 0,0 0,0 2,0 0,0 0,0 1,3

И я хотел бы получить результат, как показано ниже в приведенной выше таблице примеров:

 id city item qty
 - ---- ---- ----
 1 LAX cccc 1.0
 1 LAX dddd 2.5
 1 LAX ffff 3.0
 1 LAX iiii 1.0
 1 LAX kkkk 1.6
 1 LAX mmmm 1.1 (отсутствует в результате)
 2 SFO aaaa 1.7
 2 SFO мммм 2.4 (отсутствует результат)
 3 NYC bbbb 1.0
 3 NYC eeee 4.0
 3 NYC jjjj 2.0
 3 NYC мммм 1,3 (отсутствует в результате)

Я попытался изменить запрос из ниже ссылки, но я не могу получить все записи. Он возвращает только 9 записей и отсутствие данных из столбцов 'llll' и 'mmmm'. Я пробовал с другой таблицей, но собрал до первых 10 столбцов. Я понимаю базовый SQL, но это слишком сложно решить. Пожалуйста, помогите мне!

Транспонирование динамических столбцов в строки

(Copied from above link page and I modified a little) SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'select id, city, ''', c.column_name, ''' as item, ', c.column_name, ' as qty from test1 where ', c.column_name, ' > 0' ) SEPARATOR ' UNION ALL ' ) INTO @sql FROM information_schema.columns c where c.table_name = 'test1' and c.column_name not in ('id','city') order by c.ordinal_position; SET @sql = CONCAT('select id, city, item, qty from (', @sql, ') x order by id'); PREPARE stmt FROM @sql; EXECUTE stmt;