Vous ne pouvez tout simplement pas avoir une instruction SQL statique renvoyant un nombre variable de colonnes. Vous devez créer une telle déclaration chaque fois que le nombre de districts différents change. Pour ce faire, vous exécutez d'abord un
SELECT DISTINCT District FROM district_details;
Cela vous donnera la liste des quartiers où il y a des détails. Vous construisez ensuite une instruction SQL itérant sur le résultat précédent (pseudocode)
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;"
Et exécutez cette requête. Vous devrez alors gérer dans votre code le traitement du nombre variable de colonnes