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 original
SELECT 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 original
SELECT 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 original
CICLO CAMPO_LLUVIA DET_CICLO
muchas gracias, espero haber sido claro