Po prostu nie można mieć statycznej instrukcji SQL zwracającej zmienną liczbę kolumn. Takie zestawienie trzeba budować za każdym razem, gdy zmienia się liczba różnych dzielnic. Aby to zrobić, najpierw wykonujesz
SELECT DISTINCT District FROM district_details;
To da ci listę dzielnic, w których znajdują się szczegóły. Następnie budujesz instrukcję SQL, iterując poprzedni wynik (pseudokod)
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;"
I wykonaj to zapytanie. Będziesz wtedy musiał obsłużyć w swoim kodzie przetwarzanie zmiennej liczby kolumn