Создание динамической сводной таблицы с целочисленными именами столбцов в MySQL представляет собой небольшую проблему. При выполнении предоставленного запроса вы можете столкнуться с ошибкой, если значения user_id являются целыми числами. Чтобы решить эту проблему, нам нужно заключить значения user_id в обратные кавычки (`).
Скорректированный SQL-запрос выглядит следующим образом:
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS `', user_id, '`' ) ) INTO @sql FROM measure2; SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' FROM measure2 GROUP BY inspection_date'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
Ключевым изменением здесь является добавление обратных кавычек вокруг значений user_id в операторе GROUP_CONCAT. Делая это, мы гарантируем, что значения user_id обрабатываются как строки, а не имена столбцов.
Демо-версия SQL Fiddle: https://sqlfiddle.com/#!2/eab24/ 4
Теперь даже при целочисленных значениях user_id динамическая сводная таблица будет успешно сгенерирована.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3