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

datos en campañas

Estas en el tema de datos en campañas en el foro de Mysql en Foros del Web. Tengo el siguiente problema con estas tablas las cuales no logro que la consulta salga como debe de ser, las tablas son las siguientes Ahora ...
  #1 (permalink)  
Antiguo 13/12/2009, 16:54
 
Fecha de Ingreso: abril-2005
Ubicación: Piura - Perú
Mensajes: 189
Antigüedad: 19 años
Puntos: 0
Pregunta datos en campañas

Tengo el siguiente problema con estas tablas las cuales no logro que la consulta salga como debe de ser, las tablas son las siguientes



Ahora tengo que hacer la consulta que cumpla con las siguientes condiciones
1. Mostrar la lista de codigos de vacas
2. Que muestre la SUM de record de los 3 ordeños que se realizen realizada en su ultima campaña
3. Que muestre los dias de produccion de la ultima campaña
4. Que sepa cuando esta activa y de que lote es.

Ahora, hasta ahi todo va mas o menos menos porque no encuentro como hacer que saque de la ultima campaña, porque por ejemplo 1 vaca puede tener 4 campañas y, otra esta en su 2da campaña y yo quiero el resumen de la ultima campaña no de la mayor de todas sino de la ultima de cada una, aqui presento mi avanze:

Código MySQL:
Ver original
  1. SELECT DISTINCT db_vacas.codigo,
  2. SUM(db_productivo.1ordeño + db_productivo.2ordeño + db_productivo.3ordeño) AS ordeños,
  3. (SELECT MIN(fechaP) FROM db_productivo WHERE (db_vacas.codigo=db_productivo.codigo)
  4. )) AS dias_produccion
  5. FROM db_vacas, db_productivo WHERE (db_vacas.codigo=db_productivo.codigo) AND (db_vacas.activa='Si') AND (db_vacas.lote='lote1')
  6. GROUP BY codigo

Con este codigo solo me presenta lo siguiente



Pero no concidera que sea la ultima campaña en la que se encuentra, concidera todo

Adjunto la db para pruebas : aqui

Última edición por KenMasters; 13/12/2009 a las 16:59
  #2 (permalink)  
Antiguo 13/12/2009, 20:43
 
Fecha de Ingreso: abril-2005
Ubicación: Piura - Perú
Mensajes: 189
Antigüedad: 19 años
Puntos: 0
Respuesta: datos en campañas

Bueno, gracias a todos los que leyeron; les dejo la solución por si alguien algún dia sufre con este tipo de casos:

Código MySQL:
Ver original
  1. SELECT db_vacas.codigo,(SELECT
  2. SUM(db_productivo.1ordeño + db_productivo.2ordeño + db_productivo.3ordeño) FROM db_productivo WHERE campaña=(SELECT MAX(campaña) FROM db_productivo WHERE db_productivo.codigo=db_vacas.codigo) AND (db_productivo.codigo=db_vacas.codigo)) AS ordeños,
  3. (SELECT MIN(fechaP) FROM db_productivo WHERE (db_vacas.codigo=db_productivo.codigo) AND campaña=(SELECT MAX(campaña) FROM db_productivo WHERE db_productivo.codigo=db_vacas.codigo) AND (db_productivo.codigo=db_vacas.codigo)
  4.  )) AS dias_produccion
  5. FROM db_vacas, db_productivo WHERE (db_vacas.codigo=db_productivo.codigo) AND (db_vacas.activa='Si') AND (db_vacas.lote='lote1')
  6.  GROUP BY codigo
  #3 (permalink)  
Antiguo 13/12/2009, 23:29
 
Fecha de Ingreso: abril-2005
Ubicación: Piura - Perú
Mensajes: 189
Antigüedad: 19 años
Puntos: 0
Respuesta: datos en campañas

Perooooooooo, me vuelvo a romper el coco, como saco el promedio de la subconsulta ordeños / dias_produccion
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 06:43.