Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema con consulta en SQLITE (https://www.clubdelphi.com/foros/showthread.php?t=64060)

salvica 14-03-2009 21:27:56

Problema con consulta en SQLITE
 
Hola a tod@s

Estoy pasando una aplicación que corre en MySql a SQLite y tengo problemas con una consulta en la que que sqlite dice que una columna no existe.

La tabla en cuestión CONTRATOS enlaza otras tres tablas PROPIETARIOS, PROPIEDADES, INQUILINOS y la creo así:
Código SQL [-]
CREATE TABLE contratos (
       id_clave       INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
       id_propietario INTEGER NOT NULL 
                              CONSTRAINT fk_id_propietario
                              REFERENCES propietarios (id_clave),
       id_inquilino   INTEGER NOT NULL 
                              CONSTRAINT fk_id_inquilino
                              REFERENCES inquilinos (id_clave),
       id_propiedad   INTEGER NOT NULL 
                              CONSTRAINT fk_id_propiedad
                              REFERENCES propiedades (id_clave),
       path_contrato  VARCHAR(250), 
       fecha          DATE    DEFAULT CURRENT_DATE NOT NULL,
       valor          REAL    DEFAULT 0.0          NOT NULL
)
Luego, accedo a ella con esta consulta
Código SQL [-]
SELECT contratos.ID_CLAVE,
       contratos.FECHA,
       propietarios.NOMBRE AS PROP_NOMBRE, propietarios.APELLIDO_1 AS PROP_APELLIDO_1, propietarios.APELLIDO_2 AS PROP_APELLIDO_2,
       propiedades.TIPO, propiedades.DIRECCION, propiedades.NUMERO, propiedades.PLANTA, propiedades.LETRA,
       inquilinos.NOMBRE AS INQ_NOMBRE, inquilinos.APELLIDO_1 AS INQ_APELLIDO_1, inquilinos.APELLIDO_2 AS INQ_APELLIDO_2
  FROM propietarios
       INNER JOIN (propiedades
                   INNER JOIN (inquilinos
                               INNER JOIN contratos
                                  ON inquilinos.ID_CLAVE = contratos.ID_INQUILINO
                   ) ON propiedades.ID_CLAVE = contratos.ID_PROPIEDAD ----> esta es la línea
       ) ON propietarios.ID_CLAVE = contratos.ID_PROPIETARIO
 WHERE STRFTIME("%m", contratos.FECHA) = 4
¿Veis algo raro?

Gracias adelantadas
Salvica

salvica 14-03-2009 22:39:23

La consulta anterior trata de listar los datos de aquellos contratos que cumplen en el próximo mes, he cambiado la consulta a este modelo y parece que funciona
Código SQL [-]
SELECT contratos.ID_CLAVE, contratos.ID_PROPIETARIO, contratos.ID_PROPIEDAD, contratos.ID_INQUILINO,
       contratos.FECHA,
       propietarios.NOMBRE AS PROP_NOMBRE, propietarios.APELLIDO_1 AS PROP_APELLIDO_1, propietarios.APELLIDO_2 AS PROP_APELLIDO_2,
       propiedades.TIPO, propiedades.DIRECCION, propiedades.NUMERO, propiedades.PLANTA, propiedades.LETRA,
       inquilinos.NOMBRE AS INQ_NOMBRE, inquilinos.APELLIDO_1 AS INQ_APELLIDO_1, inquilinos.APELLIDO_2 AS INQ_APELLIDO_2
  FROM contratos
       INNER JOIN propietarios ON propietarios.ID_CLAVE = contratos.ID_PROPIETARIO
       INNER JOIN propiedades  ON propiedades.ID_CLAVE = contratos.ID_PROPIEDAD
       INNER JOIN inquilinos   ON inquilinos.ID_CLAVE = contratos.ID_INQUILINO
 WHERE STRFTIME("%m", contratos.FECHA) = "04"
Sabeis explicarme la diferencia entre las dos?

Gracias
Salvica


La franja horaria es GMT +2. Ahora son las 01:39:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi