Criar uma tabela dinâmica dinâmica com nomes de colunas inteiras no MySQL representa um pequeno desafio. Ao executar a consulta fornecida, você poderá encontrar um erro se os valores de user_id forem inteiros. Para resolver esse problema, precisamos agrupar os valores de user_id entre crases (`).
A consulta SQL ajustada fica assim:
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;
A principal modificação aqui é a adição de crases em torno dos valores user_id na instrução GROUP_CONCAT. Ao fazer isso, garantimos que os valores de user_id sejam tratados como strings em vez de nomes de colunas.
SQL Fiddle Demo: https://sqlfiddle.com/#!2/eab24/ 4
Agora, mesmo com valores inteiros de user_id, a tabela dinâmica dinâmica será gerada com sucesso.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3