es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comportamiento extraño al utilizar UNION en Access.

Estoy intentando usar una declaración de unión para combinar 2 tablas en Access. No entiendo muy bien por qué, pero tengo problemas para obtener el resultado que quiero. Sería genial si alguien pudiera ayudarme aquí. Utilizo la siguiente situación inicial:

tblBewohner
enter image description here

tblPersonal
enter image description here

Si uso la siguiente declaración de unión:

SELECT tblBewohner.calcBewohnerName, tblBewohner.idBewohner
FROM (tblVeranstaltung INNER JOIN (tblBewohner INNER JOIN tblBewohnerVeranstaltung ON tblBewohner.idBewohner = tblBewohnerVeranstaltung.frkBewohner) ON tblVeranstaltung.idVeranstaltung = tblBewohnerVeranstaltung.frkVeranstaltung) INNER JOIN (tblTagesplan INNER JOIN tblVeranstaltungTagesplan ON tblTagesplan.idTagesplan = tblVeranstaltungTagesplan.frkTagesplan) ON tblVeranstaltung.idVeranstaltung = tblVeranstaltungTagesplan.frkVeranstaltung
UNION
SELECT tblPersonal.calcPersonalName, tblPersonal.idPersonal
FROM (tblVeranstaltung INNER JOIN (tblPersonal INNER JOIN tblPersonalVeranstaltung ON tblPersonal.idPersonal = tblPersonalVeranstaltung.frkPersonal) ON tblVeranstaltung.idVeranstaltung = tblPersonalVeranstaltung.frkVeranstaltung) INNER JOIN (tblTagesplan INNER JOIN tblVeranstaltungTagesplan ON tblTagesplan.idTagesplan = tblVeranstaltungTagesplan.frkTagesplan) ON tblVeranstaltung.idVeranstaltung = tblVeranstaltungTagesplan.frkVeranstaltung;

Obtengo el siguiente resultado:

enter image description here

Como puedes ver, faltan columnas y los datos están mezclados de alguna manera. ¿Podrías darme un consejo sobre qué estoy haciendo mal aquí?
Gracias de antemano.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el número y el orden de las columnas en las dos declaraciones SELECT que están siendo combinadas por la operación UNION no coinciden. Para que una operación UNION sea exitosa, el número y el orden de las columnas en ambas declaraciones SELECT deben coincidir.

    Para solucionar esto, asegúrate de que ambas declaraciones SELECT tengan el mismo número de columnas y que los tipos de datos de las columnas correspondientes coincidan. Es posible que necesites agregar columnas adicionales con valores nulos o alias para igualar el número y el orden de las columnas.

    También es importante tener en cuenta que la operación UNION combina los resultados de ambas declaraciones SELECT sin eliminar duplicados, por lo que si hay filas duplicadas en cualquiera de las tablas, todavía aparecerán en el conjunto de resultados final.

    Si aún tienes dificultades, intenta ejecutar cada declaración SELECT individualmente para asegurarte de que estén devolviendo los resultados correctos antes de combinarlos con la declaración UNION.

Comments are closed.