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

Acumular cantidad

Estas en el tema de Acumular cantidad en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/12/2010, 05:58
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 2 meses
Puntos: 0
Acumular cantidad

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 original
  1. SELECT SUM(campo_lluvia.lluvia) lluvias FROM campo_lluvia LEFT JOIN ciclo ON ciclo.codcampo = campo_lluvia.codcampo
  2. 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
  1. 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,
  2. c.cultivo, c.densidadm2, c.densidadha, c.distsurcos, c.fechainicio, c.fechafin, c.rinde, c.observacion observacionciclo
  3. FROM ciclo c INNER JOIN det_ciclo d ON d.codciclo = c.codciclo
  4.                             INNER JOIN campos ca ON ca.codcampo = c.codcampo
  5.                             INNER JOIN lotes l ON l.codlote = c.codlote
  6.                             INNER JOIN productores p ON p.codproductor = ca.codproductor
  7.  WHERE  c.codciclo = 28 AND c.estado = 'ALTA' AND d.estado = 'ALTA'
  8. ORDER BY d.fecha


ESTRUCTURAS

Código MySQL:
Ver original
  1. CICLO
  2.  
  3.  
  4. CREATE TABLE `ciclo` (
  5.   `fechainicio` datetime default NULL,
  6.   `densidadm2` varchar(50) default NULL,
  7.   `densidadha` varchar(50) default NULL,
  8.   `distsurcos` varchar(50) default NULL,
  9.   `estado` varchar(4) default 'ALTA',
  10.   `cultivo` varchar(50) default NULL,
  11.   `antecesor` varchar(50) default NULL,
  12.   `fechaciclo` datetime default NULL,
  13.   `fechafin` datetime default NULL,
  14.   `rinde` varchar(50) default NULL,
  15.   `observacion` varchar(250) default NULL,
  16.   `codlote` int(50) default NULL,
  17.   `codcampo` int(10) unsigned default NULL,
  18.   `fechasiembra` datetime default NULL,
  19.   PRIMARY KEY  (`codciclo`),
  20.   UNIQUE KEY `codciclo` (`codciclo`),
  21.   KEY `codciclo_2` (`codciclo`)
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. CAMPO_LLUVIA
  29.  
  30.  
  31. CREATE TABLE `campo_lluvia` (
  32.   `codcampo` int(10) unsigned NOT NULL,
  33.   `lluvia` int(10) unsigned NOT NULL default '0',
  34.   `fecha` datetime default NULL,
  35.   `estado` varchar(4) default 'ALTA',
  36.   `codlluvia` int(10) unsigned NOT NULL auto_increment,
  37.   PRIMARY KEY  (`codlluvia`)
  38.  
  39.  
  40.  
  41.  
  42. DET_CICLO
  43.  
  44. CREATE TABLE `det_ciclo` (
  45.   `codciclo` int(11) unsigned zerofill NOT NULL,
  46.   `codmovimiento` int(10) unsigned NOT NULL auto_increment,
  47.   `insectos` varchar(500) default NULL,
  48.   `malezas` varchar(500) default NULL,
  49.   `enfermedades` varchar(500) default NULL,
  50.   `observaciones` varchar(3000) default NULL,
  51.   `recomendacion` varchar(3000) default NULL,
  52.   `estado` varchar(4) default 'ALTA',
  53.   `fecha` datetime default NULL,
  54.   `estadofenologico` varchar(500) default NULL,
  55.   PRIMARY KEY  (`codmovimiento`)

muchas gracias, espero haber sido claro

Etiquetas: acumular, cantidad
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 07:37.