Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2011, 12:29
rick_korn
 
Fecha de Ingreso: enero-2011
Ubicación: la paz
Mensajes: 53
Antigüedad: 13 años, 2 meses
Puntos: 3
Grupo de Columnas por año

Hola amigos.
Tengo una duda con una consulta SQL y no se como hacerlo
Primeramente tengo una tabla “personas” con los atributos pers_id, pers_nombre, pers_apellidos, pers_fnacimiento, etc
Lo que quiero realizar es una consulta SQL, que me muestre la cantidad de personas “Hombre” y “Mujer” que han nacido en un determinado mes y año, que se puedan agrupar por columnas de “AÑO” y “SEXO” y también agrupar por Filas “MES”
Año y Mes se obtienen de la fecha de nacimiento
El resultado más o menos seria una tabla de esta forma.
|__ 2000_ |__2001_ |__2002_ |__2003_ |
___|_H_|_M_|_H_|_M_|_H_|_M_|_H_|_M_|
Ene| 36 | 25 | 24 | 16 | 46 | 32 | 33 | 38 |
Feb| 36 | 25 | 36 | 25 | 36 | 25 | 36 | 25 |

Hasta ahora lo hice para un año y no sé cómo hacerlo para un rango de años 2000-2005

Esta es mi consulta SQL

SELECT to_char(p.pers_fnacimiento,'Month'),
sum(CASE WHEN p.pers_sexo = 'H' THEN 1 ELSE 0 END) H,
sum(CASE WHEN p.pers_sexo = 'M' THEN 1 ELSE 0 END) M,
count(*) total
FROM personas p
WHERE to_char(p.pers_fnacimiento,'YYYY')='2002'
GROUP BY to_char(p.pers_fnacimiento,'Month')

gracias por su tiempo