Hola que tal?
Intento crear un reporte para un sistema de monitoreo de campos y lotes...
he logrado en una consulta obtener casi todos los datos que necesito para crear este reporte que en definitiva es un poco el objetivo del sistema
En resumen: cada productor tiene uno o mas campos, los cuales se dividen en lotes, cuando se inicia un ciclo productivo( tabla ciclo) la persona encargada del monitorio visita regularmente el campo o los lotes y toma nota del estado del mismo, algunos datos son, insectos, enfermedades, malezas(tabla det_ciclo) los cuales no tengo problema en representar en el reporte porque los tengo todos en una tabla. El problema es que las lluvias de cada campo las tengo en una tabla llamada campo_lluvia (tabla campo_lluvia) y registra la cantidad de lluvia que cae en una fecha.
Necesito agregar a la consulta 2 de aqui abajo el sum(campo_lluvia.lluvia) pero no se como hacerlo porque necesita de un group by y ademas tiene que estar dentro de las fecha en que se inicia un ciclo productivo...
mas o menos asi
Código SQL:
Ver originalSELECT SUM(campo_lluvia.lluvia) lluvias FROM campo_lluvia LEFT JOIN ciclo ON ciclo.codcampo = campo_lluvia.codcampo
WHERE campo_lluvia.fecha BETWEEN ciclo.fechainicio AND ciclo.fechafin AND ciclo.codciclo = 28
ademas tener en cuenta que la fechafin de la tabla ciclo puede ser nula, ya que puede que el ciclo no haya concluido, puede que no haya lluvias en ese periodo por eso eso left join y por ultimo aclarar que uno la tabla campo_lluvia con ciclo gracias al campo codcampo
Código SQL:
Ver originalSELECT d.insectos, d.malezas, d.enfermedades, d.observaciones, d.recomendacion, d.fecha, d.estadofenologico, ca.nombre campo, l.nombre lote, p.nombre productor, c.codciclo, c.antecesor, c.fechasiembra,
c.cultivo, c.densidadm2, c.densidadha, c.distsurcos, c.fechainicio, c.fechafin, c.rinde, c.observacion observacionciclo
FROM ciclo c INNER JOIN det_ciclo d ON d.codciclo = c.codciclo
INNER JOIN campos ca ON ca.codcampo = c.codcampo
INNER JOIN lotes l ON l.codlote = c.codlote
INNER JOIN productores p ON p.codproductor = ca.codproductor
WHERE c.codciclo = 28 AND c.estado = 'ALTA' AND d.estado = 'ALTA'
ORDER BY d.fecha
ESTRUCTURAS
Código MySQL:
Ver originalCICLO
KEY `codciclo_2` (`codciclo`)
CAMPO_LLUVIA
DET_CICLO
muchas gracias, espero haber sido claro