Bueno, algunos detalles:
- Las funciones TO_CHAR() y TO_DATE() no pertenecen al estandar SQL ni tampoco a MySQL. Puede que estés preguntando en el foro equivocado. ¿Qué DBMS usas?
- MySQL no posee la cláusula PIVOT, por lo que no puede invertir una tabla de la forma en que lo pides.
- La tabla tal y como la quieres sólo se puede hacer, al menos con una consulta a MySQL, únicamente por programación, cosa que debes resolver en otro foro.
- Lo que si puede hacer en MySQL es obtener una tabla resultado que pueads usar para contruir el reporte como lo quieres por programación:
Código MySQL:
Ver original MONTH(p.pers_fnacimiento
) Mes
, SUM(IF(p.pers_sexo
= 'H', 1, 0)) Hombres
, SUM(IF(p.pers_sexo
= 'M', 1, 0)) Mujeres
,
Esta tabla resultado la deberás procesar en el lenguaje que uses (tema fuera del alcance de este foro).