Cita: los registros de consulta 1 machacan a los de cosulta 2? aquellos donde colum 1---colum2-----colum3 son iguales, pero column4 es distinto ( decir que agrupo por kas 3 primeras columnas, no se si eso tiene algo que ver) y xq se sobrescribe los registros de la prmera consulta en la segunda y no alrreves?
¿Entendiste que eso no lo hace el UNION?
Ya te lo expliqué:
Cita: Pero luego estás haciendo un GROUP BY, y ese GROUP BY se ejecuta sobre la tabla resultante o derivada de ese UNION. Y es allí donde se descartan competamente los resultados de los registros de ese UNION, dejando sólo el primer registro por cada grupo indicado. Pero es allí donde debes sumarlo:
Tu no estás agrupando sobre el cuarto campo. Lo estás sumando, por consecuencia, agrupa en base a esos tres primeros y suma todos los valores del cuarto campo donde coincidan esos tres.
de todos modos, si tomo tus propios datos, y lo que planteas hacer, el resutlado es el esperado:
Código MySQL:
Ver original -> );
Query OK, 0 rows affected (0.44 sec)
-> 1, 1, 'S12', 'SUB23', 25),
-> (2, 1, 'S12', 'SUB45', 45),
-> (3, 1, 'S34', 'SUB78', 78),
-> (4, 2, 'S12', 'SUB24', 48),
-> (5, 2, 'S33', 'SUB43', 78);
Query OK, 5 rows affected (0.14 sec)
mysql>
-> );
Query OK, 0 rows affected (0.08 sec)
-> VALUES (1, 1, 'S12', 'SUB23', 7), -> (2, 2, 'S33', 'SUB43', 8);
Query OK, 2 rows affected (0.03 sec)
mysql>
-> cod_cliente
, servicio
, subservicio
, SUM(importe
) importe
-> cod_cliente, servicio, subservicio, importe
-> cod_cliente, servicio, subservicio, importe
-> tabla2) T3
-> GROUP BY cod_cliente
, servicio
, subservicio
; +-------------+----------+-------------+---------+
| cod_cliente | servicio | subservicio | importe |
+-------------+----------+-------------+---------+
| 1 | S12 | SUB23 | 32 |
| 1 | S12 | SUB45 | 45 |
| 1 | S34 | SUB78 | 78 |
| 2 | S12 | SUB24 | 48 |
| 2 | S33 | SUB43 | 86 |
+-------------+----------+-------------+---------+
Al menos según lo que dices:
Cita: lo que quiero es unir las dos subconsultas y sumar el importe, para que quede de esta forma
cod_cliente-----servicio-----subservicio-----importe
1---------------------S12-----------SUB23---------32
1---------------------S12-----------SUB45---------45
1---------------------S34-----------SUB78---------78
2---------------------S12-----------SUB24---------48
2---------------------S33-----------SUB43---------86
O sea que si hay algún defecto, no es en la lógica del UNION, el GROUP BY o los datos. Es otra cosa...
¿Podrías postearnos el CREATE TABLE de las tablas involucradas? Sólo para confirmar...