Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2015, 14:36
clnetcom
 
Fecha de Ingreso: septiembre-2010
Mensajes: 32
Antigüedad: 13 años, 7 meses
Puntos: 0
Principiante SUMA DOS CAMPOS CON CONDICONAL

Estimados:

Me estoy dando contra la pared desde ayer.

Necesito consultar la meta de actividades nuevas y antiguas agrupadas por equipo en base a una tabla que se llama programamcion y calcular la produccion de actividades nuevas y antiguas realizadas (esto ya lo tengo resuelto)

El problema es que con la consulta que se adjunta, me arroja la produccion sin problemas separada tal como quiero pero la meta me da como resultado "40" cuando deberia ser "8"

CONSULTA:

Código MySQL:
Ver original
  1. ROUND( (SUM(programacion.nuevas+programacion.antiguas) )  , 0 ) as META,
  2. ROUND( (SUM(produccion.tipo='antigua' AND programacion.usuario=produccion.usuario AND programacion.equipo='z'))  , 0 ) as PRODUCCION_ANTIGUA,
  3. ROUND( (SUM(produccion.tipo='nueva' AND programacion.usuario=produccion.usuario AND programacion.equipo='z'))  , 0 ) as PRODUCCION_NUEVAS
  4. FROM `programacion`, `produccion` where programacion.equipo='z'

Para simplificar el problema adjunto estructura
Código MySQL:
Ver original
  1. --
  2. -- Base de datos: `problema`
  3. --
  4.  
  5. -- --------------------------------------------------------
  6.  
  7. --
  8. -- Estructura de tabla para la tabla `produccion`
  9. --
  10.  
  11. CREATE TABLE IF NOT EXISTS `produccion` (
  12.   `id` int(11) NOT NULL AUTO_INCREMENT,
  13.   `usuario` varchar(10) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  14.   `tipo` varchar(10) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  15.   `fecha` date NOT NULL,
  16.   PRIMARY KEY (`id`)
  17.  
  18. --
  19. -- Volcar la base de datos para la tabla `produccion`
  20. --
  21.  
  22. INSERT INTO `produccion` (`id`, `usuario`, `tipo`, `fecha`) VALUES
  23. (1, 'a', 'antigua', '2015-02-17'),
  24. (2, 'a', 'antigua', '2015-02-16'),
  25. (3, 'b', 'antigua', '2015-02-17'),
  26. (4, 'a', 'nueva', '2015-02-17'),
  27. (5, 'c', 'antigua', '2015-02-01');
  28.  
  29. -- --------------------------------------------------------
  30.  
  31. --
  32. -- Estructura de tabla para la tabla `programacion`
  33. --
  34.  
  35. CREATE TABLE IF NOT EXISTS `programacion` (
  36.   `id` int(5) NOT NULL,
  37.   `usuario` varchar(10) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  38.   `equipo` varchar(20) NOT NULL,
  39.   `nuevas` int(5) NOT NULL,
  40.   `antiguas` int(5) NOT NULL,
  41.   PRIMARY KEY (`usuario`),
  42.   KEY `id` (`id`)
  43.  
  44. --
  45. -- Volcar la base de datos para la tabla `programacion`
  46. --
  47.  
  48. INSERT INTO `programacion` (`id`, `usuario`, `equipo`, `nuevas`, `antiguas`) VALUES
  49. (1, 'a', 'z', 3, 2),
  50. (2, 'b', 'z', 1, 2),
  51. (3, 'c', 'x', 1, 1),
  52. (4, 'd', 'x', 1, 1);

Última edición por gnzsoloyo; 18/02/2015 a las 19:07