Re: Error en consulta

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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