Enlaces
Esta en:

documentos
Arriba
Bind-9
Bind-8
Ad+bind
Dhcp
Kdephp
Shell
Trucos
Php
Documentos
Cuestiones php
Fedora
Legal
W2000 xp
COMOS
Errores dns
Write haof XML files: Ferran Orsola <forsola_at_hotpop.com>
Fecha: Mon, 23 May 2005 09:22:12 +1000

Hola chicos recurro a vosotros como ultimo recurso despues de intentarlo
por mi mismo durante horas sin ninguna solucion.

Ya se que esto es una lista sobre PHP pero a veces tambien se postean
questiones sobre SQL.

El caso es que tengo dos tablas, una llamada Family_mems con datos
personales sobre pacientes y otra llamada Pregnancy con los hijos de
cada uno de los pacientes.

CREATE TABLE `Family_mems` (
  `Pat_Counter` int(11) NOT NULL default '0',
  ...(mas campos)........
  PRIMARY KEY (`Pat_Counter`)
) TYPE=MyISAM;

CREATE TABLE `Pregnancy` (
  `Preg_ID` int(11) default NULL,
  `Case_ID` int(11) default NULL,
  `Still_alive` int(11) default NULL,
   ...(mas campos)............
) TYPE=MyISAM;

Donde Family_mems.Pat_counter se relaciona con Pregnancy.Case_ID de 1 a
muchos.

Lo que quiero es recuperar en una sola query todos los campos de
Family_mems con dos extra datos:

El numero total de Pregnancies (Se puede hacer con algo parecido a:
 Select a.Pat_counter, count(b.Case_ID) as num_Pregnancies from
Pregnancy b, Family_mems a where a.Pat_counter=b.Case_ID group by
a.Pat_counter;

Y el numero de hijos vivos (Algo como:
  Select a.Pat_counter, count(b.Case_ID) as Chill_alive from Pregnancy
b, Family_mems a where a.Pat_counter=b.Case_ID and b.still_alive=1 group
by a.Pat_counter;

Las dos consultas funcionan bien por separado, pero cuando quiero
integrarlas en una sola no funciona:

 Select a.Pat_counter, count(b.Case_ID) as num_Pregnancies,
count(c.Case_ID) as Chill_alive from Pregnancy b, Pregnancy c,
Family_mems a where a.Pat_counter=b.Case_ID and a.Pat_counter=c.Case_ID
and c.still_alive=1 group by a.Pat_counter, b.Case_ID;

Ya que al tener dos veces la misma tabla los valores me salen multiplicados:

Por ejemplo:
Si la 1 consulta me devuelve : num_Pregnancies = 6
i la 1 consulta me devuelve : chill_alive = 5
la tercera me devuelve num_Pregnancies = 30 chill_alive = 30 (5*6)

Estoy seguro de que se puede hacer, pero no se como. alguna idea????

Gracias,

Ferran Orsola
Nearby lun may 23 2005 - 06:23:49 CEST

Este archivo fue generado por hypermail 2.2.0 : mié nov 07 2007 - 20:55:33 CET


Página Principal
Google

Web
dns.bdat.net

Visita nuestro proveedor:
www.bdat.net

Publicidad:

Impresenteibols:Humor Jazz, música en vivo