sql >> Base de Datos >  >> RDS >> Mysql

Crear un resultado de resumen con una consulta

Esta es una consulta dinámica estándar:

  SELECT uc.uut_sn,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_1' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_1,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_2' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_2,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_3' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_3,
    FROM unit_characteristics uc
GROUP BY uc.uut_sn

Para hacerlo dinámico, debe usar La sintaxis SQL dinámica de MySQL llamada declaraciones preparadas . Requiere dos consultas:la primera obtiene una lista de characteristic_name valores, por lo que puede concatenar la cadena apropiada en las expresiones CASE como ve en mi ejemplo como la consulta final.