salvica
17-03-2009, 17:57:47
Hola
Se trata de sacar por un lado aquellas personas que tienen alquilada alguna propiedad y el tipo de propiedad que es, para ello hago lo siguiente:
-- inquilinos con contrato y tipos de propiedad
SELECT inquilinos.ID_CLAVE,
inquilinos.NOMBRE, inquilinos.APELLIDO_1, inquilinos.APELLIDO_2,
inquilinos.NIF,
inquilinos.TELEFONO_1,
inquilinos.DIRECCION, inquilinos.LOCALIDAD,
propiedades.TIPO
FROM contratos
LEFT JOIN inquilinos ON contratos.ID_INQUILINO=inquilinos.ID_CLAVE
LEFT JOIN propiedades ON contratos.ID_PROPIEDAD=propiedades.ID_CLAVE
y por otro lado sacar aquellas personas que no tienen ningún contrato firmado, para lo cual hago:
-- inquilinos sin contrato ni propiedad
SELECT inquilinos.ID_CLAVE,
inquilinos.NOMBRE, inquilinos.APELLIDO_1, inquilinos.APELLIDO_2,
inquilinos.NIF,
inquilinos.TELEFONO_1,
inquilinos.DIRECCION, inquilinos.LOCALIDAD,
"" AS TIPO
FROM inquilinos
WHERE inquilinos.ID_CLAVE NOT IN (SELECT contratos.ID_INQUILINO
FROM contratos)
El problema es que si hago la unión de las consultas bajo el SQLite Administrator, en teoría me muestra datos, pero:
- si corro el programa bajo el IDE de Delphi me dice que falta el campo APELLIDO_2
- si ejecuto directamente el programa, no da error pero no me muestra nada
¿veis qué puedo tener mal?
Gracias adelantadas
salvica
Se trata de sacar por un lado aquellas personas que tienen alquilada alguna propiedad y el tipo de propiedad que es, para ello hago lo siguiente:
-- inquilinos con contrato y tipos de propiedad
SELECT inquilinos.ID_CLAVE,
inquilinos.NOMBRE, inquilinos.APELLIDO_1, inquilinos.APELLIDO_2,
inquilinos.NIF,
inquilinos.TELEFONO_1,
inquilinos.DIRECCION, inquilinos.LOCALIDAD,
propiedades.TIPO
FROM contratos
LEFT JOIN inquilinos ON contratos.ID_INQUILINO=inquilinos.ID_CLAVE
LEFT JOIN propiedades ON contratos.ID_PROPIEDAD=propiedades.ID_CLAVE
y por otro lado sacar aquellas personas que no tienen ningún contrato firmado, para lo cual hago:
-- inquilinos sin contrato ni propiedad
SELECT inquilinos.ID_CLAVE,
inquilinos.NOMBRE, inquilinos.APELLIDO_1, inquilinos.APELLIDO_2,
inquilinos.NIF,
inquilinos.TELEFONO_1,
inquilinos.DIRECCION, inquilinos.LOCALIDAD,
"" AS TIPO
FROM inquilinos
WHERE inquilinos.ID_CLAVE NOT IN (SELECT contratos.ID_INQUILINO
FROM contratos)
El problema es que si hago la unión de las consultas bajo el SQLite Administrator, en teoría me muestra datos, pero:
- si corro el programa bajo el IDE de Delphi me dice que falta el campo APELLIDO_2
- si ejecuto directamente el programa, no da error pero no me muestra nada
¿veis qué puedo tener mal?
Gracias adelantadas
salvica