Access - Se repiten

 
Vista:

Se repiten

Publicado por Alberto (7 intervenciones) el 27/01/2006 14:11:55
Hola a todos, mi problema es que hago una consulta y se me repiten los valores.
Tengo una tabla llamada plantas con un campo idHabitación donde hay numeros desde el 101 al 320. Bien, esta tabla no la toco para nada, solo me sirve para sacar a un cuadro combinado los nºdehabitaciones segun sean individual o doble que es otro campo dentro de Plantas.
Despues tengo una tabla residentes donde guardo la info. de cada residente y al final un campo con el nº de habitación(IdHabitación).

Entonces el problema es que si hago una cosuta asi:

SELECT Plantas.IdHabitación, Residentes.IdHabitación FROM Plantas, Residentes WHERE (Plantas.IdHabitación<>Residentes!IdHabitación);

esto me devuelve mal el resultado, pq me muestra repetido cada valor de Plantas.IdHabitación tantas veces como valores de Residentes.IdHabitación halla, por ejemplo, si tengo 6 residentes entonces devuelve cada valor de Plantas.IdHabitación 6 veces: 101,101,101,101,101,101,102,102,102,102,102,102,103,... aunque hace bien la consulta de kitar los valores que esten ya en Residentes.IdHabitación, solo kita un valor de los 6 repetidos.

Yo quiero que salgan solo las habitaciones que estan en plantas y no estan en Residentes.

Un saludo!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Se repiten

Publicado por Rodolfo (1 intervención) el 27/01/2006 17:43:39
Lo que te esta pasando es que no definiste ninguna relacion. Te paso un ejemplo de como trabaja el Access o el SQL

Si tengo 2 tablas y no defino ninguna relacion

Tabla1 Tabla2
id Genero Id Concepto
1 Frutas 1 Naranja
2 Carnes 1 Manzanas
3 Dulces 4 Goma de auto
5 Cama 2 plazas

Y pongo como sentencia

SELECT Tabla1.Id, tabla2.concepto FROM tabla1, tabla2 WHERE (tabla1.Id<>tabla2.Id), el resultado sera el siguiente:

Id
2 Goma de Auto
2 Cama 2 plazas
3 Goma de Auto
3 Cama 2 plazas

Lo que hace es tomar de la primera tabla los datos que cumplen la condicion y repetirlo tantas veces como encontro datos que cumplen la misma condicion en la segunda tabla

Para que no te pase esto, lo que debes hacer es en una consulta y definir una relacion (JOIN) y agrupar los campos que queres que te muestre.

En Sql seria:

SELECT Tabla2.Id, Tabla2.Concepto
FROM Tabla2 LEFT JOIN Tabla1 ON Tabla2.Id = Tabla1.Id
WHERE (((Tabla1.Id) Is Null))
GROUP BY Tabla2.Id, Tabla2.Concepto;

El rdo seria:

4 Goma de Auto
5 Cama 2 plazas

Espero que te haya servido

Rodolfo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar