Problema
Queremos crear una consulta de unión en Ms Access. Una consulta de unión combinará los resultados de varias consultas de selección. Si es de UNION combinará aquellos resultados únicos y si es UNION ALL combinará todos los resultados.
Partimos de las siguientes dos tablas cuyos dos primeros registros están duplicados en ambas tablas.
Solución
Creamos una consulta y después clic en SQL Vista SQL. O bien abrimos una consulta antigua y la guardamos posteriormente con otro nombre.(Ver notas)
- UNION
SELECT Tabla1.* FROM Tabla1; UNION SELECT Tabla2.* FROM Tabla2;Como se puede observar, la consultade UNION, tan solo incluye aquellos registros únicos, excluyendo los duplicados.
SELECT Tabla1.* FROM Tabla1; UNION ALL SELECT Tabla2.* FROM Tabla2;Como se puede observar, la consultade UNION, incluye todos los registros incluidos los duplicados.
La consultas de unión, una vez guardadas, aparecerán con el símbolo de dos aros anidados en el panel de navegación.
Notas
Una consulta de unión es específica de SQL. Las consultas específicas de SQL no se pueden mostrar en la vista Diseño y, por lo tanto, deben escribirse directamente en SQL. En Microsoft Office Access 2007, se utiliza la ficha de objeto Vista SQL para escribir consultas específicas de SQL, incluidas consultas de unión.
Referencias
buenas tardes... estoy haciendo una consulta de union..
ResponderEliminarpero quiero que me sume el total de BaseG de cada empleado sin que me muestre duplicados... esta es la consulta:
SELECT CVE_EMP, CVE_EMP2, Sum(IIf([tipo]=1,GRAVABLE,0)) AS Baseg
FROM Acum1
WHERE (((MES)=4) AND ((AÑO)=2017))
GROUP BY CVE_EMP, CVE_EMP2
HAVING (((Sum(IIf([tipo]=1,GRAVABLE,0)))>0))
UNION
SELECT CVE_EMP, CVE_EMP2, Sum(IIf([tipo]=1,GRAVABLE,0)) AS Baseg
FROM Acum2
WHERE (((MES)=4) AND ((AÑO)=2017))
GROUP BY CVE_EMP, CVE_EMP2
HAVING (((Sum(IIf([tipo]=1,GRAVABLE,0)))>0))
pero me arroja estos resultados:
CVE_EMP CVE_EMP2 Baseg
1 1 874.94
1 1 1000
129 0 278.14
129 129 535
129 129 200
288 288 167.5
735 735 234
El empleado que Cve_emp y Cve_emp2 = 1 debe aparecer una vez y con el total de 1,874.94 y el # 129 debería de tener 735.
Ayuda por favor!!
Hola Julio. No muestra registros duplicados pues el valor para la columna Baseg es diferente. Por tanto, los resultados de tu consulta de UNION son correctos Lo que quieres es posteriormente agrupar por las columnas CV_EMP y CVE_EMP2. Simplemente hazlo. Saludos.
Eliminargracias por tu rapida respuesta..
ResponderEliminarpodrias indicarme como hacerlo, por favor, para que me sume los resultados de Baseg ya agrupados por cve_emp y cve_emp2...
desde ya muchas gracias!
Simplemente usa la consulta de unión creada como base de otra consulta. Tu pregunta no tiene nada que ver con esta entrada. Y además, esto no es un foro de resolución de preguntas. Te recomiendo que leas manuales de Access y consultes foros. Si tienes más preguntas, plantéalas allí.
Eliminarok.. disculpa entonces... gracias
ResponderEliminar