Access- Consulta muestra valores inexistentes

Tengo una BD en access la cual tengo 3 tablas relacionadas entre si. Una es Instalaciones, otra es Cliente y la ultima es Edificio. Por cada Cliente tengo distintas Instalaciones y cada Instalación tiene distintos Edificios con un registro en cada año. La consulta que hago para mostrar los valores que quiero es la siguiente:

SELECT instalaciones.Id, instalaciones.Nombre, instalaciones.IdCliente, instalaciones.Cliente, instalaciones.Poblacion, instalaciones.Direccion, edificio.ED_FechaRegistro, edificio.ED_Year, clientes.Id

FROM clientes INNER JOIN (edificio INNER JOIN instalaciones ON edificio.ED_ClienteTitular = instalaciones.Cliente) ON clientes.Razon = instalaciones.Cliente

GROUP BY instalaciones.Id, instalaciones.Nombre, instalaciones.IdCliente, instalaciones.Cliente, instalaciones.Poblacion, instalaciones.Direccion, edificio.ED_FechaRegistro, edificio.ED_Year, clientes.Id;

El problema viene en que al mostrar los resultados de la consulta, me muestra ciertas instalaciones con fechas que no corresponden a dicha instalación. ¿Por qué podría ser? Muchas gracias>>>Black

2 Respuestas

Respuesta
2

Aitor: Antes de analizar la consulta, lo que veo es que esas relaciones que citas, y sin llegar a decir que estén mal, las considero incorrectas.

Un Cliente tuyo puede tener 1 o N propiedades en 1 Edificio, Y dentro de esa propiedad puede haber 1 o N Instalaciones. De ese modo necesitarías 4 Tablas:

TblClientes >> TblUbicaciones >> TblInstalaciones >> TblInstalacionesUbica

De X Instalaciones en la Ubicación U del Cliente C podrá haber I Instalaciones

Como tu mejor que nadie conoce la estructura, ya me contarás. Saludos >> Jacinto

Buenas Jacinto,

No es necesaria 4 tablas ya que tiene, el Cliente para identificar cual es>La instalación que pertenece a cada cliente y el conjunto de Edificios con sus registros que tiene cada Instalación.

Dudo mucho que sea por lo que comentas...

Gracias!>>>Black

Aitor: Como te comentaba en mi respuesta, nadie mejor que tus datos, no obstante sigo manteniendo mi opinión de mi respuesta, con la lógica reserva de que puedo estar equivocado.

En tu pregunta " ...cada Instalación tiene distintos Edificios con un registro en cada año" y la verdad como técnico me ha chocado verlo así. Sin saber más interpreto que debería ser >> "cada Edificio tiene distintas Instalaciones con un registro en cada año". No tiene mayor importancia. Solo es una curiosidad. Veo que Icue te da una solución. Un saludo >> Jacinto

Respuesta
2

Si la relación es como en la imagen, más o menos

La instrucción te tendría que salir

y el resultado

Buenas Icue,

Efecticvamente lo tengo como tu excepto que además de ello tengo un GROUP BY ya que sino se duplican datos, el problema que me aparece es que por ejemplo, imagina que en tu ejemplo dentro de Piso Franco tengo pisoA y PisoB, en Piso A solo tienes registros de fecha en 2012 y 2016 y en PisoB 2013, 2014. Pues cuando le de a la consulta me aparecerán que pisoA y pisoB tienen registros de fecha en los años 2012, 2013, 2014, 2016 cuando no es así y no se porque aparece.

Probablemente sea por las relaciones, porque no consigo que me suceda. Mira tengo la tabla Clientes

La tabla Instalaciones

Y la tabla edificios

Como puedes ver hay 21 registros, que es lo máximo que deben salir en la consulta

y el resultado

No se repite nada. Por eso convendría que revisaras las relaciones.

Buenas Icue,

Efectivamente tiene que ser un problema de relación pero no consigo ver donde esta el fallo en mi Base de datos...

Pues no te puedo decir otra cosa. Lo único que se me ocurre es que pongas una imagen de las relaciones en el diseño de la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas