Ayuda para optimizar consulta y obtener infrome ordenado

07/07/2004 - 19:29 por Ing. Bernardo Cordoba - Previmedic S.A. | Informe spam
Estoy tratando de realizar la siguiente consulta y no he podido, por eso
acudo a ustedes para que me colaboren.

Tabla : afbenefi
campos:
campos:
afbnumeid
afbsexo
afbfecnac
ipscodigo
muncodigo
depcodigo

la consulta es la siguiente:
Cuantos pacientes de cada sexo hay en cada sede (ipscodigo) clasificados en
rangos de sexo de la siguiente manera:

-
| IPSCODIGO | SEXO | 0-7 AÑOS | 8-14 AÑOS | 15-44 AÑOS | 45-59
AÑOS | MAYOR O IGUAL A 60 AÑOS |
-
| 996 | M | 5 | 1300
| 742 | 0 | 100
|
-
| 996 | F | 425 | 10
| 345 | 615 | 160
|
-
.
No tengo mucha experiencia en SQL pero se me ha ocurrido lo siguiente, como
no tenbgo las ededaes de los pacientes, primero hago el calculo de esta y
las almaceno en una tabla temporal seleccionandolo dependiendo del muncodigo
(001) y depcodigo (13) de la siguiente manera:

select ipscodigo as ips, afcsexo as sexo, afcfecnac as fechanac,
case
when month(afcfecnac) < month(getdate())
then
(year(getdate())-year(afcfecnac))
else
(year(getdate())-year(afcfecnac))-1
end as edad --Calcylo la edad teniendo en cuenta el mes en que
estamos, omito el dia, asumiendo este %de error
into #cotizantes --lleno la tabla temporal con las edades calculadas
from afcotiza
where muncodigo='001' and depcodigo='13'

para
select ips, sexo, count(sexo) as cantidad
from #cotizantes where edad between 15 and 44
group by sexo, ips
order by sexo

temporal ya que esta informacion
drop table #cotizantes

Espero que me puedan ayudar, he tratado de ser lo mas expolicativo..

Gracias de antemano por su colaboarcion.

Ing. Bernardo Cordoba
Cartagena, Colombia
 

Leer las respuestas

#1 Ing. Bernardo Cordoba - Previmedic S.A.
07/07/2004 - 20:14 | Informe spam
los rangos no son por el sexo sino por la edad.
Lla consulta es la siguiente: Cuantos pacientes de cada sexo hay en cada
sede (ipscodigo) clasificados en
rangos de edad de la siguiente manera:



"Ing. Bernardo Cordoba - Previmedic S.A." escribió en
el mensaje news:
Estoy tratando de realizar la siguiente consulta y no he podido, por eso
acudo a ustedes para que me colaboren.

Tabla : afbenefi
campos:
campos:
afbnumeid
afbsexo
afbfecnac
ipscodigo
muncodigo
depcodigo

la consulta es la siguiente:
Cuantos pacientes de cada sexo hay en cada sede (ipscodigo) clasificados


en
rangos de edad de la siguiente manera:

| IPSCODIGO | SEXO | 0-7 AÑOS | 8-14 AÑOS | 15-44 AÑOS | 45-59
AÑOS | MAYOR O IGUAL A 60 AÑOS |
| 996 | M | 5 | 1300
| 742 | 0 | 100
|
| 996 | F | 425 | 10
| 345 | 615 | 160
|
.
No tengo mucha experiencia en SQL pero se me ha ocurrido lo siguiente,


como
no tenbgo las ededaes de los pacientes, primero hago el calculo de esta y
las almaceno en una tabla temporal seleccionandolo dependiendo del


muncodigo
(001) y depcodigo (13) de la siguiente manera:

select ipscodigo as ips, afcsexo as sexo, afcfecnac as fechanac,
case
when month(afcfecnac) < month(getdate())
then
(year(getdate())-year(afcfecnac))
else
(year(getdate())-year(afcfecnac))-1
end as edad --Calcylo la edad teniendo en cuenta el mes en que
estamos, omito el dia, asumiendo este %de error
into #cotizantes --lleno la tabla temporal con las edades calculadas
from afcotiza
where muncodigo='001' and depcodigo='13'

para
select ips, sexo, count(sexo) as cantidad
from #cotizantes where edad between 15 and 44
group by sexo, ips
order by sexo

temporal ya que esta informacion
drop table #cotizantes

Espero que me puedan ayudar, he tratado de ser lo mas expolicativo..

Gracias de antemano por su colaboarcion.

Ing. Bernardo Cordoba
Cartagena, Colombia


Preguntas similares