SQL - Consulta SQL ordenada por sexo y por distrito

 
Vista:

Consulta SQL ordenada por sexo y por distrito

Publicado por FECS (2 intervenciones) el 14/05/2004 19:56:04
Saludos:
Tengo una tabla principal que registra los datos de una persona incluidos sexo (1:Masc.,2:Femen.) Distrito (guarda el codigo que proviene de otra tabla), etc

Lo que yo necesito es contar el total de hombres y mujeres por Distrito, lo cual me resulta pero de esta manera

distrito Hombres Mujeres
========== ====== =====
distrito A 3 0
distrito A 0 2
distrito B 1 0
distrito B 0 4

el problema es que yo necesito que de un mismo distrito esten en una sola fila

distrito Hombres Mujeres
========== ====== =====
distrito A 3 0
distrito A 0 2
distrito B 1 0
distrito B 0 4

he intentado con el CASE WHEN pero sale como en el primer ejemplo. Tambien creando dos consultas... y luego uniendolas en una tercera pero me dice que "no se puede mostrar porque las subconsultas botan mas de un valor y no se pueden cuando se utiliza una expresion"

Quisiera un apoyo para la aplicación de este conflicto ya que si funciona cuando solo quiero los totates por sexo:

Hombres Mujeres
====== =====
4 6

pero a la hora de tambien agruparlos por distrito surge el problema
Gracias de antemano
Atte
FECS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta SQL ordenada por sexo y por distrito

Publicado por Isaías Islas (5072 intervenciones) el 14/05/2004 21:26:07
Digame si funciona

SELECT DISTRITO,
SUM(CASE WHEN SEXO = H THEN 1 ELSE 0 END) AS HOMBRES,
SUM(CASE WHEN SEXO = M THEN 1 ELSE 0 END) AS MUJERES
FROM Mytabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta SQL ordenada por sexo y por distrito

Publicado por Ya esta (2 intervenciones) el 17/05/2004 19:30:47
gracias ese lo modifique y salio...
este es el modelo final

SELECT DISTINCT(SELECT DISTDES from TABDISTRITO where TABDISTRITO.DISTCOD = MAESTRO.DISTCOD)DISTRITO,
SUM(CASE WHEN TRAMI22COD = '1' THEN 1 ELSE 0 END) AS HOMBRES,
SUM(CASE WHEN TRAMI22COD = '2' THEN 1 ELSE 0 END) AS MUJERES
FROM MAESTRO, TABDISTRITO
GROUP BY TABDISTRITO.DISTCOD,MAESTRO.DISTCOD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar