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
[-]
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