Ver Mensaje Individual
  #1  
Antiguo 13-01-2008
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Reputación: 21
salvica Va por buen camino
Consulta ¿compleja?

Sé que el título no se ajusta a las normas, pero no encontré uno mas apropiado

Tengo un problema con una consulta para sacar todos los propietarios que tienen inmuebles de un tipo determinado

Código:
Tabla: PROPIETARIO (datos de los propietarios de inmuebles)
============================================================
ID_PROPIETARIO ---> clave del propietario
... -------> otros datos del propietario

Tabla: PROPIEDAD   (datos de los inmuebles)
============================================================
ID_PROPIEDAD -----> clave del inmueble
TIPO_PROPIEDAD ---> puede ser VIVIENDA, GARAJE, OFICINA, etc.
... -------> otros datos del inmueble

Tabla: PERTENECE (correspondencia entre los propetarios y sus inmuebles)
============================================================
ID_PERTENECE -----> identificador del registro
ID_PROPIETARIO ---> clave del propietario
ID_PROPIEDAD -----> clave del inmueble
Con esto saco los datos de TODOS los propietarios
Código SQL [-]
SELECT propietario.ID_PROPIETARIO, propietario.NOMBRE, propietario.APELLIDO_1, propietario.APELLIDO_2
  FROM propietario

Con esto saco los identificadores de los propietarios que tienen propiedades de un tipo determinado
Código Delphi [-]
{ pongo delphi porque no se porque no pilla la etiqueta sql }
SELECT DISTINCT pertenece.ID_PROPIETARIO
  FROM propiedad INNER JOIN pertenece ON propiedad.ID_PROPIEDAD = pertenece.ID_PROPIEDAD
 WHERE propiedad.TIPO="VIVIENDA"

He intentado lo siguiente (aparte de hacer el "canelo")
Código SQL [-]
SELECT propietario.NOMBRE, propietario.APELLIDO_1, propietario.APELLIDO_2,
       propietario.ID_PROPIETARIO IN (
                   SELECT DISTINCT pertenece.ID_PROPIETARIO
                     FROM propiedad INNER JOIN pertenece ON propiedad.ID_PROPIEDAD = pertenece.ID_PROPIEDAD
                    WHERE propiedad.TIPO="VIVIENDA"
       ) AS IDENTIFICADOR
  FROM propietario
pero no me vale, saca TODOS los propietarios y rellena IDENTIFICADOR con cero y menos uno (estos son los que tienen dichas propiedades)

¿como hago para que saque solo éstos últimos?
Agradecido por la ayuda
salvica

edito: ------> uso Zeos como conector y las tablas son .DBF
De nuevo agradecido
salvica

Última edición por salvica fecha: 13-01-2008 a las 18:02:21.
Responder Con Cita