Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problema con Consulta php+Mysql

Estas en el tema de problema con Consulta php+Mysql en el foro de Mysql en Foros del Web. buenos dias / tardes a todos esperando tenga un excelente inicio de año y una excelente unión familiar en estas fechas. pues bien estoy aquí ...
  #1 (permalink)  
Antiguo 03/01/2014, 10:22
 
Fecha de Ingreso: julio-2005
Mensajes: 73
Antigüedad: 19 años, 4 meses
Puntos: 0
problema con Consulta php+Mysql

buenos dias / tardes a todos esperando tenga un excelente inicio de año y una excelente unión familiar en estas fechas.

pues bien estoy aquí con un problema que me trae dando vueltas tratando de encontrar la solución pero al no tener tanta experiencia en sql o mysql apelo a su conocimiento veran tengo la siguiente tabla, bastante extensa cerca de 25 mil registros.

Código:
identity_id | site_id | farrowings | eventdate
----------------------------------------------------------
17045 | 20 | 1 | 2012-09-29 |
17050 | 20 | 1 | 2012-08-21 |
17053 | 20 | 1 | 2012-08-25 | 
17060 | 20 | 1 | 2012-08-24 |
17066 | 20 | 1 | 2012-09-03 |
17071 | 20 | 1 | 2012-08-25 |
17074 | 20 | 1 | 2012-08-21 |
17078 | 20 | 1 | 2012-08-31 |
17084 | 20 | 1 | 2012-09-23 |
17088 | 20 | 1 | 2012-09-23 |
17091 | 20 | 1 | 2012-08-26 |
17094 | 20 | 1 | 2012-09-05 |
....
bien esta tabla guarda los eventos de partos de una granja donde cada identity_id hace referencia a una hembra site_id el sitio farrowings solo es informativo se sabe que es que en esa fecha tuvo un parto bien de estos datos tengo que sacar 2 valores : el primero saber el numero de partos que hubo en una fecha y semana determinada segun el codigo de sitio esto lo logro con la siguiente consulta:
Código SQL:
Ver original
  1. SELECT COUNT( identity_id )
  2. FROM  `edad_parto`
  3. WHERE site_id =20
  4. AND YEAR( eventdate ) =2013
  5. AND WEEKOFYEAR( eventdate ) =49

esa consulta me arroja que en la semana 49 del año 2013 del sitio 20 hubo 62 partos. de ahi tendría que sacar el segundo dato que seria los partos promedio que tienen las hembras que han tenido un parto en esa fecha en especifico manualmente se que han tenido 3.4 partos en promedio pero no se como especificarlo mediante una consulta. es decir. supongamos que en esa semana la hembra 17045 tambien tuvo el evento de parto tendria que sumar los partos que ha tenido durante toda su vida: 4 partos en total, y asi sucesivamente con las 62 hembras y luego promediar los partos para que me 3.4 por ejemplo.

de antemano muchas gracias, espero puedan ayudarme.

Última edición por gnzsoloyo; 03/01/2014 a las 10:40 Razón: Código de programación no permitido en Foros de BBDD.
  #2 (permalink)  
Antiguo 03/01/2014, 10:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema con Consulta php+Mysql

Son dos consultas diferentes que deben ser consolidadas, pero las condiciones de los WHERE son diferentes, por lo que cada cálculo debe ser hecho por separado.
En esencia es una consulta del tipo:
Código MySQL:
Ver original
  1. SELECT T1.MediadePartosAnimal, T2.partosenSemana
  2. FROM (SELECT calcular la media de partos del animal FROM ... WHERE ...) T1
  3.     LEFT JOIN (SELECT calcular total de partos del animal en semana X FROM ... WHERE ...) T2 ON T1.idanimal = t2.idanimal
  4. WHERE (condiciones) OR T2.idanimal IS NULL;

Por supuesto, para este caso se necesita conocer mejor las otras tablas involucradas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/01/2014, 11:07
 
Fecha de Ingreso: julio-2005
Mensajes: 73
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: problema con Consulta php+Mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Son dos consultas diferentes que deben ser consolidadas, pero las condiciones de los WHERE son diferentes, por lo que cada cálculo debe ser hecho por separado.
En esencia es una consulta del tipo:
Código MySQL:
Ver original
  1. SELECT T1.MediadePartosAnimal, T2.partosenSemana
  2. FROM (SELECT calcular la media de partos del animal FROM ... WHERE ...) T1
  3.     LEFT JOIN (SELECT calcular total de partos del animal en semana X FROM ... WHERE ...) T2 ON T1.idanimal = t2.idanimal
  4. WHERE (condiciones) OR T2.idanimal IS NULL;

Por supuesto, para este caso se necesita conocer mejor las otras tablas involucradas.
Muchas gracias por tu respuesta gnzsoloyo, aunque solo es una tabla
  #4 (permalink)  
Antiguo 03/01/2014, 11:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema con Consulta php+Mysql

En ese caso sigue siendo la misma tabla en ambas subconsultas, pero no te saldrán datos de aquellas hembras que no hayan parido. Dependiendo del reporte, puede ser información trascendente o no.
Prueba la lógica propuesta teniendo en cuenta que en un LEFT JOIN la primera tabla (primer subconsulta) debe devolver siempre la misma cantidad de registros que la seguna o más. Nunca menos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/01/2014, 11:27
 
Fecha de Ingreso: julio-2005
Mensajes: 73
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: problema con Consulta php+Mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En ese caso sigue siendo la misma tabla en ambas subconsultas, pero no te saldrán datos de aquellas hembras que no hayan parido. Dependiendo del reporte, puede ser información trascendente o no.
Prueba la lógica propuesta teniendo en cuenta que en un LEFT JOIN la primera tabla (primer subconsulta) debe devolver siempre la misma cantidad de registros que la seguna o más. Nunca menos.
me podrias ayudar... no tengo tanta experiencia... gracias.

Etiquetas: consulta-mysql, php+mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:47.