From: | Miguel Rodríguez Penabad <penabad(at)gmail(dot)com> |
---|---|
To: | "Alejandro D(dot) Burne" <alejandro(dot)dburne(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Error en consulta |
Date: | 2007-07-17 15:38:15 |
Message-ID: | 95335e4e0707170838p3df02ad1haa7da3d84cebab05@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> AMR=# SELECT CodigoLiquidacionProfesional FROM LiquidacionesProfesionales WHERE
> CodigoLiquidacionProfesional=299549 AND CodigoLiquidacionProfesional NOT IN (SEL
> ECT CodigoLiquidacionProfesional FROM Caja);
> codigoliquidacionprofesional
> ------------------------------
> (0 rows)
Supongo que te extraña que esta consulta no devuelva filas, y la siguiente sí.
La razón es que tienes NULL en el campo CodigoLiquidacionProfesional
de la tabla Caja,
y un NOT IN (select que devuelve nulos) NUNCA SE EVALÚA A CIERTO.
De hecho, la expresión "campo not in (3,null)" es lo mismo que
"campo <> 3 and campo <> null", y "campo <> null" es unknown
(desconocido, nulo), no cierto.
Prueba la consulta así:
SELECT CodigoLiquidacionProfesional
FROM LiquidacionesProfesionales
WHERE CodigoLiquidacionProfesional=299549
AND CodigoLiquidacionProfesional NOT IN
(SELECT CodigoLiquidacionProfesional FROM Caja where
CodigoLiquidacionProfesional is not null);
Y ya de paso (apreciaciación totalmente personal e intransferible)
acorta los nombres de los campos y de las tablas :)
Saludos, y espero haber ayudado
From | Date | Subject | |
---|---|---|---|
Next Message | Alejandro D. Burne | 2007-07-17 15:48:02 | Re: Error en consulta |
Previous Message | Alejandro D. Burne | 2007-07-17 14:44:56 | Re: iniciar base de datos en modo monousuario |