PDA

Ver la Versión Completa : Agrupacion en una UNION


emeritos
22-03-2010, 12:42:14
Hola dilferos.
Vamos a ver si me explico:
Lo que quiero hacer en esta sentencia:

SELECT A.fecha, SUM(A.cantidad), CO.precio, CO.nombre_concepto,
SUM(A.cantidad * CO.precio) AS importe
FROM albaranes A, conceptos CO
WHERE (A.cod_concepto = CO.cod_concepto)
GROUP BY CO.nombre_concepto

UNION

SELECT A.fecha, SUM(A.cantidad), CO.precio, CO.nombre_concepto,
SUM(A.cantidad * CO.precio) AS importe
FROM albaranes_ext A, conceptos CO
WHERE (A.cod_concepto = CO.cod_concepto)
GROUP BY CO.nombre_concepto
ORDER BY 6

es agrupar por el CO.nombre_concepto (esta sentencia sale bien) pero quiero agrupar todas las filas que salgan (como el ORDER BY), tal y como esta, agrupa la de una SELECT y despues la de la otra SELECT y me salen dos filas con el mismo concepto por que vienen de distintos ficheros, y quiero que solo salga una sola fila.

Gracias.

Caro
22-03-2010, 14:29:08
Hola emeritos, prueba esto:


SELECT T.fecha, SUM(T.cantidad), T.precio, T.nombre_concepto,
SUM(T.cantidad * T.precio) AS importe
From (SELECT A.fecha, A.cantidad, CO.precio, CO.nombre_concepto,
FROM albaranes A, conceptos CO
WHERE (A.cod_concepto = CO.cod_concepto)
UNION
SELECT A.fecha, SUM(A.cantidad), CO.precio, CO.nombre_concepto,
FROM albaranes_ext A, conceptos CO
WHERE (A.cod_concepto = CO.cod_concepto) ) as T
GROUP BY T.nombre_concepto
............................


Saluditos