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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Liliana Sorrentino
07/07/2004 - 21:25 | Informe spam
Te contesté en "AYUDA CON CONSULTA URGENTE"
Liliana.

"Ing. Bernardo Cordoba - Previmedic S.A." escribió en
el mensaje news:
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'
>


consultas
> para


en
> 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
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida