Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2017, 04:52
mikil
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 7 meses
Puntos: 0
union all + group by

a partir de una tabla: encargos
necesito hacer un consulta donde debo obtener una tabla seleccionada entre fechas

articulo, ventas1, ventas2, ventas3, ventas4, ventas5, ventas6, ventas7

y lo hago con el UNION ALL
Código SQL:
Ver original
  1. (SELECT encargos.monturaVta AS montura, COUNT(*) AS ventastda1 , 0 AS ventastda2, 0 AS ventastda3, 0 AS ventastda4, 0 AS ventastda5, 0 AS ventastda6, 0 AS ventastda7
  2. FROM encargos
  3. WHERE encargos.fechaVta>='2017-01-30' AND encargos.fechaVta<='2017-02-06' AND
  4.         encargos.tdaVta=1 AND encargos.monturaVta>''   
  5. GROUP BY encargos.monturaVta)
  6.  
  7. UNION ALL
  8.  
  9. (SELECT encargos.monturaVta AS montura, 0 AS ventastda1, COUNT(*) AS ventastda2, 0 AS ventastda3, 0 AS ventastda4, 0 AS ventastda5, 0 AS ventastda6, 0 AS ventastda7
  10. FROM encargos
  11. WHERE encargos.fechaVta>='2017-01-30' AND encargos.fechaVta<='2017-02-06' AND
  12.     encargos.tdaVta=2 AND encargos.monturaVta>''
  13. GROUP BY encargos.monturaVta)
  14.  
  15. UNION ALL
  16.  
  17. (SELECT encargos.monturaVta AS montura, 0 AS ventastda1, 0 AS ventastda2, COUNT(*) AS ventastda3, 0 AS ventastda4, 0 AS ventastda5, 0 AS ventastda6, 0 AS ventastda7
  18. FROM encargos
  19. WHERE encargos.fechaVta>='2017-01-30' AND encargos.fechaVta<='2017-02-06' AND
  20.     encargos.tdaVta=3 AND encargos.monturaVta>''
  21. GROUP BY encargos.monturaVta)
[/CODE]

esto me saca una tabla tal:
art1 1 0 0 0 0 0 0
art1 0 1 0 0 0 00
art2
art2
art2

es decir, por cada select una linea,
cómo puedo hacer que me agrupe por articulo el resultado final?

Última edición por gnzsoloyo; 24/03/2017 a las 16:10