Originariamente inviato da nicola75ss
per ottenere il raggruppamento per peso e statura basta che aggiungi anche l'altro campo al group by

GROUP BY persona.id_altezza,persona.id_corporatura

per visualizzare i dati come vuoi tu dovresti farlo col php.

edit. In alternativa potresti crearti una tabella temporanea e poi su questa fare una query a campi incrociati.

create temporary table incrociata
SELECT COUNT(*) as quanti, altezza.tipo as altezza, corporatura.tipo as peso
FROM persona INNER JOIN altezza ON persona.id_altezza=altezza.id
INNER JOIN corporatura ON persona.id_corporatura=corporatura.id
GROUP BY persona.id_altezza,persona.id_corporatura

e poi fare una query così

select peso,
sum(case altezza WHEN "alto" then quanti else 0 end) AS alto,
sum(case altezza WHEN "medio" then quanti else 0 end) AS medio,
sum(case altezza WHEN "basso" then quanti else 0 end) AS basso
from incrociata
group by peso

fammi sapere.
provo subito, ieri nonostante le ricerche non ne sono venuto a capo.

L'unica cosa che mi viene in mente è, la tabella dopo la query la devo eliminare giusto? E cosa succede se due utenti aprono la pagina che fa questo report un momento dopo l'altro e il sistema va a creare una tabella che già esiste perchè lo script in esecuzione dal primo utente non è ancora arrivato alla eliminazione della tabella?? Inoltre, se posso, in che modo organizzeresti i dati in php??