Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2010, 08:32
cacr
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Calculo de fórmula con 2 campos de 2 tablas

Saludos

Tengo una tabla de registro de nacimientos por año y por código político, más o menos así:

nacimientos (region varchar(2), estado varchar(2), agno varchar(4), numero_nacimientos smallint)

Y otra con la población por año y por código político, más o menos así:
poblacion ((region varchar(2), estado varchar(2), agno varchar(4), mujeres smallint), edad smallint)

Lo que las "une" es el código político y el año de la información.

Estoy tratando de sacar una consulta que me devuelva la tasa de fecundidad cuya fórmula es:
fecundidad = ((nacimientos / población femenina en edad entre 12 y 49 años) * 1000)

A patica, saco de una tabla los nacimientos:
mi_bd=# SELECT sum(numero_nacimientos) , estado FROM salud.nacimientos WHERE region = '06' AND agno = '2003' GROUP BY estado ORDER BY estado;
sum | estado
-------+---------
33148 | 14
12455 | 21
(2 filas)

mi_bd=# SELECT sum(mujeres) , estado FROM demografia.poblacion WHERE edad >= 12 AND edad <= 49 AND region = '06' AND agno = '2003' GROUP BY estado ORDER BY estado;
sum | estado
--------+---------
227326 | 14
145302 | 20
165668 | 21
(3 filas)

Pero quiero hacerla en una sola consulta para sacarle provecho a la BD, intenté con algo simple como:
SELECT est_001, sum(dem01_006) as mujeres, sum(sal11_004) as nacimientos
mi_bd-# FROM demografia.poblacion
mi_bd-# JOIN salud.nacimientos USING (region, estado)
mi_bd-# WHERE region = '06' AND demografia.agno = '2003' AND poblacion.agno = '2003' AND (edad >= 12 AND edad <= 49)
mi_bdr-# GROUP BY estado;
estado | mujeres | nacimientos
-------------+-----------------+----------
21 | 3313360 | 9515620
14 | 24778534 | 28971352
(2 filas)

donde se observa que la consulta está recontra mala, jajaja

Luz?
__________________
Gracias de todas todas
-----
Linux!