Ver Mensaje Individual
  #4  
Antiguo 04-05-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
Thumbs up

Código SQL [-]
SELECT 
SUM( Case pa.cod_sexo when 'F' then 1 else 0 end ) as SF,
SUM( Case pa.cod_sexo when 'M' then 1 else 0 end ) as SM,
SUM( Case when (hc.edad >=0 and hc.edad<=18 and pa.cod_sexo='F') then 1 else 0 end)  rangoF1,
SUM( Case when (hc.edad >18 and hc.edad<=35 and pa.cod_sexo='F') then 1 else 0 end)  rangoF2,
SUM( Case when (hc.edad >35 and hc.edad<=49 and pa.cod_sexo='F') then 1 else 0 end)  rangoF3,
SUM( Case when (hc.edad >=50 and hc.edad<=120 and pa.cod_sexo='F') then 1 else 0 end)  rangoF4,

SUM( Case when (hc.edad >=0 and hc.edad<=18 and pa.cod_sexo='M') then 1 else 0 end)  rangoM1,
SUM( Case when (hc.edad >18 and hc.edad<=35 and pa.cod_sexo='M') then 1 else 0 end)  rangoM2,
SUM( Case when (hc.edad >35 and hc.edad<=49 and pa.cod_sexo='M') then 1 else 0 end)  rangoM3,
SUM( Case when (hc.edad >=50 and hc.edad<=120 and pa.cod_sexo='M') then 1 else 0 end)  rangoM4

FROM TBL_HC_OFTALMOLOGIA_ hc

LEFT JOIN tbl_pacientes_ pa ON pa.clave = hc.clv_paciente
LEFT JOIN tbl_diagnosticos_ di ON di.cod_diag = hc.cod_diag1

WHERE 1=1 

AND (hc.estatus = 'A' )
AND (hc.cod_diag1>=:CodDiagIni) AND (hc.cod_diag1<=:CodDiagFin)
AND (pa.cod_entidad>=:CodEntidadIni) AND (pa.cod_entidad<=:CodEntidadFin)
AND  (hc.fecha >= :fechaini  AND hc.fecha <= :fechafin) 
AND  (hc.edad >= :EdadIni  AND hc.edad <= :EdadFin) 
AND  (hc.tipo_edad >= :TipoEdadIni  AND hc.tipo_edad <= :TipoEdadFin) 
AND  (pa.cod_sexo >= :GeneroIni  AND pa.cod_sexo <= :GeneroFin) 
AND  (hc.clv_usuario >= :ProfesionalIni  AND hc.clv_usuario <= :ProfesionalFin)
Yo creo que con esto basta, es en una consulta por aparte.
Al no tener que agrupar por los campos anteriores al SUM, directamente hará las sumas totales.
Le he sacado Group by y Order by no es necesario.
No lo he probado así que el Where hay que depurarlo un poco. En especial tengo dudas con los campos SF y SM, no estoy seguro si afectan a la sumatoria final o no.
Bien, me dirás como va la cosa.
Espero haber ayudado.

Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.

Última edición por santiago14 fecha: 04-05-2010 a las 00:53:55. Razón: Mejora de la consulta
Responder Con Cita