[Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes

Carlos Enrique Rodriguez cer en racssprg.com.ar
Jue Jun 25 16:52:45 CEST 2015


Dos cosas que se me ocurren que puede ser el problema:

  a.-   Select MIN(case when E.Practicas = 'Egreso de internación' then 
E.FECHAPRACTICA else null end)
     Aca estás metiendo valores null al where final. Podés probar con un 
valor 'XYZ' preguntanto si Egreso <> 'XYX' en lugar de
   si X.egreso is null. Con esto sacamos null de cualquier revoleo 
intermedio que haya
b.-  Tenes dos veces declarado el campo Egreso (dentro y fuera de 
paréntesis), quizás esto sea lo que malinterprete la consulta.

Nos vemos
Carlos

El 25/06/2015 a las 11:45, Maxi escribió:
> no hay valores null, el problema lo tienen con las consultas como
> campos, si le quito eso trae datos.
> Hay una interpretacion previa que no la entiende.
> Incluso le desactive el parsesql y no trae nada
>
> El día 25 de junio de 2015, 11:09, Carlos Enrique Rodriguez
> <cer en racssprg.com.ar> escribió:
>> Hola,
>>           Si no te da error, una de las cuestiones que se me ocurre que puede
>> estar pasando es que tengas valores NULL en alguno de los campos que
>> vinculan tablas o están en el where.  Eso lo he sufrido más de una vez. :)
>>
>> Nos vemos
>> Carlos
>>
>>
>>
>> El 25/06/2015 a las 10:51, Maxi escribió:
>>> Firebird 2.1.3
>>> Lazarus 1.4.0 FCP 2.6.4
>>> ZeosLib 7.1.4 estable
>>>
>>> Tengo una consulta medio rara por como esta organizado el
>>> almacenamiento (no es mi base aclaro) la consulta funciona en otros
>>> manejadores de datos sin problemas pero en el ide de Lazarus no trae
>>> datos pero no da error en la consulta
>>>
>>> Creo que sobreinterpreta o prepara la consulta y algo no le gusta a
>>> estos controles porque no trae datos si los nombres de los campos.
>>> sospecho esto porque en el generador de consultas del componente
>>> sqlquery al hacer el chequeo de sintaxis dice que espera una , en una
>>> linea
>>>
>>> No me paso antes con este tipo de consultas.
>>>
>>> select x.* from
>>> (select
>>>     DISTINCT
>>>     r.CUENTA,
>>>     R.NOMBRE,
>>>     R.OBRASOCIAL,
>>>     case when R.Practicas = 'Recepción internacion' then R.FECHAPRACTICA
>>> else null end as Ingreso,
>>>     CAST((Select MIN(case when E.Practicas = 'Egreso de internación'
>>> then E.FECHAPRACTICA else null end) as Egreso from
>>>             VW_HISTORIASCLINICAS E
>>>             where E.CUENTA = R.CUENTA and E.FECHAPRACTICA >=
>>> R.FECHAPRACTICA
>>>             and E.Practicas = 'Egreso de internación'
>>>             ) as DATE) as Egreso,
>>>     R.NROHC,
>>>       (Select first 1 (case when CODIGOPRACTICA = 'SEC_CAMA' then
>>> DETALLEPRACTICA else null end) as sector from
>>>             VW_HISTORIASCLINICAS SE
>>>             where
>>>             SE.CUENTA = R.CUENTA
>>>             and
>>>             SE.FECHAPRACTICA >= R.FECHAPRACTICA
>>>             and SE.Practicas = 'Sector' order by SE.FECHAPRACTICA desc
>>>             ) as Sector
>>>    from
>>>      VW_HISTORIASCLINICAS R
>>>    where
>>>         R.Practicas = 'Recepción internacion') x
>>>    where x.egreso is null
>>>
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>





More information about the Lazarus-es mailing list