Crear una tabla dinámica dinámica con nombres de columnas enteras en MySQL plantea un pequeño desafío. Al ejecutar la consulta proporcionada, puede encontrar un error si los valores de user_id son números enteros. Para resolver este problema, necesitamos incluir los valores de user_id entre comillas invertidas (`).
La consulta SQL ajustada se ve así:
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;
La modificación clave aquí es la adición de comillas invertidas alrededor de los valores de user_id en la declaración GROUP_CONCAT. Al hacer esto, nos aseguramos de que los valores de user_id se traten como cadenas en lugar de nombres de columnas.
Demostración de SQL Fiddle: https://sqlfiddle.com/#!2/eab24/ 4
Ahora, incluso con valores enteros de user_id, la tabla dinámica dinámica se generará correctamente.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3