Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

consulta mysql para converter dinamicamente dados de linha em colunas


Você simplesmente não pode ter uma instrução SQL estática retornando um número variável de colunas. Você precisa construir tal declaração cada vez que o número de diferentes distritos mudar. Para fazer isso, você executa primeiro um
SELECT DISTINCT District FROM district_details;

Isso lhe dará a lista de distritos onde há detalhes. Você então constrói uma instrução SQL iterando sobre o resultado anterior (pseudocódigo)
statement = "SELECT name "

For each row returned in d = SELECT DISTINCT District FROM district_details 
    statement = statement & ", SUM(IF(District=""" & d.District & """,1 ,0)) AS """ & d.District & """" 

statement = statement & " FROM district_details GROUP BY name;"

E execute essa consulta. Você precisará manipular em seu código o processamento da variável número de colunas