Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2012, 04:11
portela85
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 6 meses
Puntos: 3
MYSQL uso de UNION

Buenos días,

en mi aplicación de php necesito mostrar en 2 columnas, 2 sumatorios de datos que provienen del mismo campo, pero que dependerá de la una cláusula WHERE.
las consultas son:

Código:
SELECT SUM(trabajos.preciototalK25) as preciototalK25, clientes.cliente, proyectos.proyecto, proyectos.WBS, interlocutores.interlocutor FROM ((interlocutores INNER JOIN ((clientes INNER JOIN trabajos ON clientes.Id_cliente = trabajos.cliente) INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto) ON interlocutores.Id_inerlocutor = trabajos.interlocutor)) WHERE ((trabajos.f_inicio)>='2012-06-01' And (trabajos.f_inicio)<='2012-6-30' AND (trabajos.estadocliente) = 'SI') GROUP BY clientes.cliente, proyectos.proyecto ORDER BY interlocutores.interlocutor
y
Código:
SELECT SUM(trabajos.preciototalK25) as preciototalESTIMADO, clientes.cliente, proyectos.proyecto, proyectos.WBS, interlocutores.interlocutor FROM ((interlocutores INNER JOIN ((clientes INNER JOIN trabajos ON clientes.Id_cliente = trabajos.cliente) INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto) ON interlocutores.Id_inerlocutor = trabajos.interlocutor)) WHERE ((trabajos.f_inicio)>='2012-06-01' And (trabajos.f_inicio)<='2012-6-30') GROUP BY clientes.cliente, proyectos.proyecto ORDER BY interlocutores.interlocutor)
Como véis la única diferencia es que la segunda no incluye la cláusula: (trabajos.estadocliente) = 'SI'

Lo que quiero es poder unir estas dos consultas a través de UNION, para con mi aplicación poder mostrar los datos correctamente.

He probado a hacerlo de la manera que viene a continuación pero me sale el error en el phpmyadmin: Incorrect usage of UNION and ORDER BY
Código:
SELECT SUM(trabajos.preciototalK25) as preciototalK25, clientes.cliente, proyectos.proyecto, proyectos.WBS, interlocutores.interlocutor FROM ((interlocutores INNER JOIN ((clientes INNER JOIN trabajos ON clientes.Id_cliente = trabajos.cliente) INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto) ON interlocutores.Id_inerlocutor = trabajos.interlocutor)) WHERE ((trabajos.f_inicio)>='2012-06-01' And (trabajos.f_inicio)<='2012-6-30' AND (trabajos.estadocliente) = 'SI') GROUP BY clientes.cliente, proyectos.proyecto ORDER BY interlocutores.interlocutor UNION (SELECT SUM(trabajos.preciototalK25) as preciototalESTIMADO, clientes.cliente, proyectos.proyecto, proyectos.WBS, interlocutores.interlocutor FROM ((interlocutores INNER JOIN ((clientes INNER JOIN trabajos ON clientes.Id_cliente = trabajos.cliente) INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto) ON interlocutores.Id_inerlocutor = trabajos.interlocutor)) WHERE ((trabajos.f_inicio)>='2012-06-01' And (trabajos.f_inicio)<='2012-6-30') GROUP BY clientes.cliente, proyectos.proyecto ORDER BY interlocutores.interlocutor);
Muchas gracias por anticipado