Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2015-06

Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes

27 messages · 8 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Maxi

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

El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Carlos Enrique Rodriguez
to Maxi

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�:

Show quoted text 47 lines
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

Reply by email

Maxi
to Carlos Enrique Rodriguez

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�:

Show quoted text 66 lines
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
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Carlos Enrique Rodriguez
to Maxi

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�:

Show quoted text 73 lines
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

Reply by email

Ismael L. Donis Garcia
to Carlos Enrique Rodriguez: Si no te da error, una de las cuestiones que se me ocurre que puede estar pasando es que…

Mi consejo personal es que vallas desagregando la consulta para que te facilite localizar el error.

Vas haciendo las consultas desde adentro hacia afuera para que vallas mirando los resultados que te dan.

Saludos Cordiales
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 70 lines
----- Original Message ----- From: "Carlos Enrique Rodriguez" <cer en racssprg.com.ar> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 10:09 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes 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 >

Reply by email

Samuel Toloza
to Carlos Enrique Rodriguez: Dos cosas que se me ocurren que puede ser el problema: a.- Select MIN(case when…

Puede ser que necesites usar el metodo SqlQuery.Open en lugar de SqlQuery.ExectSQL .

Cordialmente

Samuel Toloza Parraguez
T�cnico Inform�tico

Earlier message 131 lines
-----Original Message----- From: Carlos Enrique Rodriguez <cer en racssprg.com.ar> To: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org> Sent: Thu, Jun 25, 2015 10:53 am Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes 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 >>> >> >>

Reply by email

Maxi
to Carlos Enrique Rodriguez: Dos cosas que se me ocurren que puede ser el problema: a.- Select MIN(case when…

no estan declarado 2 veces

es una seleccion apartir de otra seleccion "select from (Select....)"

Esto sirve para evitar llenar de vistas el motor

El d�a 25 de junio de 2015, 11:52, Carlos Enrique Rodriguez <cer en racssprg.com.ar> escribi�:

Show quoted text 102 lines
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 > > > _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Ismael L. Donis Garcia: Mi consejo personal es que vallas desagregando la consulta para que te facilite localizar…

el "error" esta en el where interior, se ve que hace algo antes y lo rompe

El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia <slibre en citricos.co.cu> escribi�:

Show quoted text 96 lines
Mi consejo personal es que vallas desagregando la consulta para que te facilite localizar el error. Vas haciendo las consultas desde adentro hacia afuera para que vallas mirando los resultados que te dan. Saludos Cordiales ======== | ISMAEL | ======== Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com www.sisconge.hol.es ----- Original Message ----- From: "Carlos Enrique Rodriguez" <cer en racssprg.com.ar> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 10:09 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes 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 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Ismael L. Donis Garcia
to Maxi

Me puse a mirar la consulta detalladamente, antes no lo hab�a realizado. Tu me disculpas pero esa consulta nunca te va a funcionar ya que lo que est�s haciendo en ella es claro que el motor no lo va a poder resolver.

Mejor me dices los campos de la tabla y los resultados que quieres obtener para hacerte la consulta. Una vez realizada la puedes estudiar o te la puedo explicar mejor.

Lo siguiente nunca te va a funcionar:

select x, (select y from t1 where t1.x=t2.x) as y from t2

Y eso es precisamente lo que tu est�s tratando de hacer.

Para que funcione tendr�as que sacar el select para entre el from y el where

Saludos Cordiales
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 122 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 11:53 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes el "error" esta en el where interior, se ve que hace algo antes y lo rompe El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia <slibre en citricos.co.cu> escribi�: > Mi consejo personal es que vallas desagregando la consulta para que te > facilite localizar el error. > > Vas haciendo las consultas desde adentro hacia afuera para que vallas > mirando los resultados que te dan. > > Saludos Cordiales > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- From: "Carlos Enrique Rodriguez" > <cer en racssprg.com.ar> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Thursday, June 25, 2015 10:09 AM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > > 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 > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maikel Enrique Pernia Matos
to Ismael L. Donis Garcia

Colegas:
Disculpen, no he seguido el hilo; pero por lo que cita Ismael

<quote>

select x, (select y from t1 where t1.x=t2.x) as y from t2

</quote>

Pienso que quiz�s la soluci�n correcta es utilizar consultas de uni�n si son soportadas por el SGBD

suponiendo que existan dos tablas t1 y t2 y que ambas tengan un campo com�n (�ndice) al que llamaremos x, adem�s la tabla t1 tiene los campos a, b y c, la tabla t2 tiene los campos d, e y f, la sintaxis podr�an ser as�:

Ejemplo utilizando INNER JOIN:

SELECT
t1.a,
t1.b,
t2.e AS h,
t2.f
FROM t1 INNER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL

En este caso muestra los valores que coincidan de ambas tablas t1 y t2, que coincidan

Ejemplo utilizando LEFT OUTER JOIN:

SELECT
t1.a,
t1.b,
t2.e AS h,
t2.f
FROM t1 LEFT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL

La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de la tabla izquierda (en este caso t1), con los valores de la tabla de la derecha correspondientes (en este caso t2), o retorna un valor nulo NULL en caso de no correspondencia.

Ejemplo utilizando RIGHT OUTER JOIN:

SELECT
t1.a,
t1.b,
t2.e AS h,
t2.f
FROM t1 RIGHT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL

La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de la tabla derecha (en este caso t2), con los valores de la tabla de la izquierda correspondientes (en este caso t2), o retorna un valor nulo NULL en caso de no correspondencia.

Saludos,
Maikel

El jue, 25-06-2015 a las 13:21 -0400, Ismael L. Donis Garcia escribi�:

Show quoted text 136 lines
Me puse a mirar la consulta detalladamente, antes no lo hab�a realizado. Tu me disculpas pero esa consulta nunca te va a funcionar ya que lo que est�s haciendo en ella es claro que el motor no lo va a poder resolver. Mejor me dices los campos de la tabla y los resultados que quieres obtener para hacerte la consulta. Una vez realizada la puedes estudiar o te la puedo explicar mejor. Lo siguiente nunca te va a funcionar: select x, (select y from t1 where t1.x=t2.x) as y from t2 Y eso es precisamente lo que tu est�s tratando de hacer. Para que funcione tendr�as que sacar el select para entre el from y el where Saludos Cordiales ======== | ISMAEL | ======== Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com www.sisconge.hol.es ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 11:53 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes el "error" esta en el where interior, se ve que hace algo antes y lo rompe El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia <slibre en citricos.co.cu> escribi�: > Mi consejo personal es que vallas desagregando la consulta para que te > facilite localizar el error. > > Vas haciendo las consultas desde adentro hacia afuera para que vallas > mirando los resultados que te dan. > > Saludos Cordiales > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- From: "Carlos Enrique Rodriguez" > <cer en racssprg.com.ar> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Thursday, June 25, 2015 10:09 AM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > > 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 > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Ismael L. Donis Garcia
to Maikel Enrique Pernia Matos

No en su caso es mucho m�s f�cil aun ya que todo lo extrae de una sola tabla VW_HISTORIASCLINICAS

Lo que pasa que en la selecci�n de los campos est� realizando consultas con wheres relacionados a la tabla del from de la consulta y eso no lo puede hacer porque el motor se pierde.

Lo que tienes es que hacer las subconsultas dentro en el from y no delante del from, delante se pueden hacer pero no puede tener en el where relacion con el from posterior.

Las relaciones deben ir desde dentro hacia afuera y nunca desde afuera hacia adentro.

Lo que tiene que hacer es anidar las consultas y como es una sola tabla poner relaciones con inner join para que le corra m�s r�pido.

Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 223 lines
----- Original Message ----- From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 2:02 PM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Colegas: Disculpen, no he seguido el hilo; pero por lo que cita Ismael <quote> select x, (select y from t1 where t1.x=t2.x) as y from t2 </quote> Pienso que quiz�s la soluci�n correcta es utilizar consultas de uni�n si son soportadas por el SGBD suponiendo que existan dos tablas t1 y t2 y que ambas tengan un campo com�n (�ndice) al que llamaremos x, adem�s la tabla t1 tiene los campos a, b y c, la tabla t2 tiene los campos d, e y f, la sintaxis podr�an ser as�: Ejemplo utilizando INNER JOIN: SELECT t1.a, t1.b, t2.e AS h, t2.f FROM t1 INNER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL En este caso muestra los valores que coincidan de ambas tablas t1 y t2, que coincidan Ejemplo utilizando LEFT OUTER JOIN: SELECT t1.a, t1.b, t2.e AS h, t2.f FROM t1 LEFT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de la tabla izquierda (en este caso t1), con los valores de la tabla de la derecha correspondientes (en este caso t2), o retorna un valor nulo NULL en caso de no correspondencia. Ejemplo utilizando RIGHT OUTER JOIN: SELECT t1.a, t1.b, t2.e AS h, t2.f FROM t1 RIGHT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de la tabla derecha (en este caso t2), con los valores de la tabla de la izquierda correspondientes (en este caso t2), o retorna un valor nulo NULL en caso de no correspondencia. Saludos, Maikel El jue, 25-06-2015 a las 13:21 -0400, Ismael L. Donis Garcia escribi�: > Me puse a mirar la consulta detalladamente, antes no lo hab�a realizado. > Tu > me disculpas pero esa consulta nunca te va a funcionar ya que lo que est�s > haciendo en ella es claro que el motor no lo va a poder resolver. > > Mejor me dices los campos de la tabla y los resultados que quieres obtener > para hacerte la consulta. Una vez realizada la puedes estudiar o te la > puedo > explicar mejor. > > Lo siguiente nunca te va a funcionar: > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > Y eso es precisamente lo que tu est�s tratando de hacer. > > Para que funcione tendr�as que sacar el select para entre el from y el > where > > Saludos Cordiales > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- > From: "Maxi" <maximiliano.duarte en gmail.com> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Thursday, June 25, 2015 11:53 AM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > el "error" esta en el where interior, se ve que hace algo antes y lo rompe > > El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia > <slibre en citricos.co.cu> escribi�: > > Mi consejo personal es que vallas desagregando la consulta para que te > > facilite localizar el error. > > > > Vas haciendo las consultas desde adentro hacia afuera para que vallas > > mirando los resultados que te dan. > > > > Saludos Cordiales > > ======== > > | ISMAEL | > > ======== > > Only for the small landowners and Cubans companies > > Website: www.sisconge.byethost15.com > > www.sisconge.hol.es > > ----- Original Message ----- From: "Carlos Enrique Rodriguez" > > <cer en racssprg.com.ar> > > To: "Spanish version of Lazarus List" > > <lazarus-es en lists.lazarus.freepascal.org> > > Sent: Thursday, June 25, 2015 10:09 AM > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > > no > > tiene errores aparentes > > > > > > > > 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 > > > > > > > > _______________________________________________ > > Lazarus-es mailing list > > Lazarus-es en lists.lazarus.freepascal.org > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Maikel Enrique Pernia Matos
to Ismael L. Donis Garcia

Ah!, entiendo dices algo asi:

SELECT
(SELECT t1.x FROM t1 WHERE t1.x = 'algo') AS y,
(SELECT t1.x FROM t1 WHERE t1.x != 'algo') AS z
FROM t1

El jue, 25-06-2015 a las 14:42 -0400, Ismael L. Donis Garcia escribi�:

Show quoted text 258 lines
No en su caso es mucho m�s f�cil aun ya que todo lo extrae de una sola tabla VW_HISTORIASCLINICAS Lo que pasa que en la selecci�n de los campos est� realizando consultas con wheres relacionados a la tabla del from de la consulta y eso no lo puede hacer porque el motor se pierde. Lo que tienes es que hacer las subconsultas dentro en el from y no delante del from, delante se pueden hacer pero no puede tener en el where relacion con el from posterior. Las relaciones deben ir desde dentro hacia afuera y nunca desde afuera hacia adentro. Lo que tiene que hacer es anidar las consultas y como es una sola tabla poner relaciones con inner join para que le corra m�s r�pido. Saludos Reiterados ======== | ISMAEL | ======== Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com www.sisconge.hol.es ----- Original Message ----- From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 2:02 PM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Colegas: Disculpen, no he seguido el hilo; pero por lo que cita Ismael <quote> select x, (select y from t1 where t1.x=t2.x) as y from t2 </quote> Pienso que quiz�s la soluci�n correcta es utilizar consultas de uni�n si son soportadas por el SGBD suponiendo que existan dos tablas t1 y t2 y que ambas tengan un campo com�n (�ndice) al que llamaremos x, adem�s la tabla t1 tiene los campos a, b y c, la tabla t2 tiene los campos d, e y f, la sintaxis podr�an ser as�: Ejemplo utilizando INNER JOIN: SELECT t1.a, t1.b, t2.e AS h, t2.f FROM t1 INNER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL En este caso muestra los valores que coincidan de ambas tablas t1 y t2, que coincidan Ejemplo utilizando LEFT OUTER JOIN: SELECT t1.a, t1.b, t2.e AS h, t2.f FROM t1 LEFT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de la tabla izquierda (en este caso t1), con los valores de la tabla de la derecha correspondientes (en este caso t2), o retorna un valor nulo NULL en caso de no correspondencia. Ejemplo utilizando RIGHT OUTER JOIN: SELECT t1.a, t1.b, t2.e AS h, t2.f FROM t1 RIGHT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de la tabla derecha (en este caso t2), con los valores de la tabla de la izquierda correspondientes (en este caso t2), o retorna un valor nulo NULL en caso de no correspondencia. Saludos, Maikel El jue, 25-06-2015 a las 13:21 -0400, Ismael L. Donis Garcia escribi�: > Me puse a mirar la consulta detalladamente, antes no lo hab�a realizado. > Tu > me disculpas pero esa consulta nunca te va a funcionar ya que lo que est�s > haciendo en ella es claro que el motor no lo va a poder resolver. > > Mejor me dices los campos de la tabla y los resultados que quieres obtener > para hacerte la consulta. Una vez realizada la puedes estudiar o te la > puedo > explicar mejor. > > Lo siguiente nunca te va a funcionar: > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > Y eso es precisamente lo que tu est�s tratando de hacer. > > Para que funcione tendr�as que sacar el select para entre el from y el > where > > Saludos Cordiales > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- > From: "Maxi" <maximiliano.duarte en gmail.com> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Thursday, June 25, 2015 11:53 AM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > el "error" esta en el where interior, se ve que hace algo antes y lo rompe > > El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia > <slibre en citricos.co.cu> escribi�: > > Mi consejo personal es que vallas desagregando la consulta para que te > > facilite localizar el error. > > > > Vas haciendo las consultas desde adentro hacia afuera para que vallas > > mirando los resultados que te dan. > > > > Saludos Cordiales > > ======== > > | ISMAEL | > > ======== > > Only for the small landowners and Cubans companies > > Website: www.sisconge.byethost15.com > > www.sisconge.hol.es > > ----- Original Message ----- From: "Carlos Enrique Rodriguez" > > <cer en racssprg.com.ar> > > To: "Spanish version of Lazarus List" > > <lazarus-es en lists.lazarus.freepascal.org> > > Sent: Thursday, June 25, 2015 10:09 AM > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > > no > > tiene errores aparentes > > > > > > > > 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 > > > > > > > > _______________________________________________ > > Lazarus-es mailing list > > Lazarus-es en lists.lazarus.freepascal.org > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Ismael L. Donis Garcia
to Maikel Enrique Pernia Matos

Si o dentro del 3er from depende de las relaciones que quieras realizar.

Debe ser algo como lo siguiente: Tengo que saber primero bien que quiere para poder hacer bien la consulta. Por lo que no se si esta devuelve bien lo que quiere:

select x.* from
(select r.CUENTA, R.NOMBRE, R.OBRASOCIAL, case when R.PRACTICAS = 'Recepci�n internacion' then R.FECHAPRACTICA else null end as Ingreso, CAST(MIN(E.FECHAPRACTICA) as DATE) as Egreso, R.NROHC, S.SECTOR from VW_HISTORIASCLINICAS R,
(select EG.CUENTA, EG.FECHAPRACTICA from VW_HISTORIASCLINICAS EG where EG.Practicas = 'Egreso de internaci�n' group by EG.CUENTA, EG.FECHAPRACTICA) E,
(Select SE.CUENTA, SE.FECHAPRACTICA, (case when SE.CODIGOPRACTICA = 'SEC_CAMA' then SE.DETALLEPRACTICA else null end) as sector from VW_HISTORIASCLINICAS SE where SE.Practicas = 'Sector') S where R.Practicas = 'Recepci�n internacion' and E.CUENTA = R.CUENTA and S.CUENTA = R.CUENTA and E.FECHAPRACTICA >= R.FECHAPRACTICA and s.FECHAPRACTICA >= R.FECHAPRACTICA
group by R.CUENTA, R.NOMBRE, R.OBRASOCIAL, case when R.PRACTICAS = 'Recepci�n internacion' then R.FECHAPRACTICA else null end, R.NROHC, S.SECTOR
) x where x.egreso is null

Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 297 lines
----- Original Message ----- From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 3:11 PM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Ah!, entiendo dices algo asi: SELECT (SELECT t1.x FROM t1 WHERE t1.x = 'algo') AS y, (SELECT t1.x FROM t1 WHERE t1.x != 'algo') AS z FROM t1 El jue, 25-06-2015 a las 14:42 -0400, Ismael L. Donis Garcia escribi�: > No en su caso es mucho m�s f�cil aun ya que todo lo extrae de una sola > tabla > VW_HISTORIASCLINICAS > > Lo que pasa que en la selecci�n de los campos est� realizando consultas > con > wheres relacionados a la tabla del from de la consulta y eso no lo puede > hacer porque el motor se pierde. > > Lo que tienes es que hacer las subconsultas dentro en el from y no delante > del from, delante se pueden hacer pero no puede tener en el where relacion > con el from posterior. > > Las relaciones deben ir desde dentro hacia afuera y nunca desde afuera > hacia > adentro. > > Lo que tiene que hacer es anidar las consultas y como es una sola tabla > poner relaciones con inner join para que le corra m�s r�pido. > > Saludos Reiterados > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- > From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Thursday, June 25, 2015 2:02 PM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > Colegas: > Disculpen, no he seguido el hilo; pero por lo que cita Ismael > > <quote> > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > </quote> > > Pienso que quiz�s la soluci�n correcta es utilizar consultas de uni�n si > son soportadas por el SGBD > > suponiendo que existan dos tablas t1 y t2 y que ambas tengan un campo > com�n (�ndice) al que llamaremos x, adem�s la tabla t1 tiene los campos > a, b y c, la tabla t2 tiene los campos d, e y f, la sintaxis podr�an ser > as�: > > Ejemplo utilizando INNER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 INNER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > En este caso muestra los valores que coincidan de ambas tablas t1 y t2, > que coincidan > > Ejemplo utilizando LEFT OUTER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 LEFT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de > la tabla izquierda (en este caso t1), con los valores de la tabla de la > derecha correspondientes (en este caso t2), o retorna un valor nulo NULL > en caso de no correspondencia. > > Ejemplo utilizando RIGHT OUTER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 RIGHT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de > la tabla derecha (en este caso t2), con los valores de la tabla de la > izquierda correspondientes (en este caso t2), o retorna un valor nulo > NULL en caso de no correspondencia. > > > Saludos, > Maikel > > El jue, 25-06-2015 a las 13:21 -0400, Ismael L. Donis Garcia escribi�: > > Me puse a mirar la consulta detalladamente, antes no lo hab�a realizado. > > Tu > > me disculpas pero esa consulta nunca te va a funcionar ya que lo que > > est�s > > haciendo en ella es claro que el motor no lo va a poder resolver. > > > > Mejor me dices los campos de la tabla y los resultados que quieres > > obtener > > para hacerte la consulta. Una vez realizada la puedes estudiar o te la > > puedo > > explicar mejor. > > > > Lo siguiente nunca te va a funcionar: > > > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > > > Y eso es precisamente lo que tu est�s tratando de hacer. > > > > Para que funcione tendr�as que sacar el select para entre el from y el > > where > > > > Saludos Cordiales > > ======== > > | ISMAEL | > > ======== > > Only for the small landowners and Cubans companies > > Website: www.sisconge.byethost15.com > > www.sisconge.hol.es > > ----- Original Message ----- > > From: "Maxi" <maximiliano.duarte en gmail.com> > > To: "Spanish version of Lazarus List" > > <lazarus-es en lists.lazarus.freepascal.org> > > Sent: Thursday, June 25, 2015 11:53 AM > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > > no > > tiene errores aparentes > > > > > > el "error" esta en el where interior, se ve que hace algo antes y lo > > rompe > > > > El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia > > <slibre en citricos.co.cu> escribi�: > > > Mi consejo personal es que vallas desagregando la consulta para que te > > > facilite localizar el error. > > > > > > Vas haciendo las consultas desde adentro hacia afuera para que vallas > > > mirando los resultados que te dan. > > > > > > Saludos Cordiales > > > ======== > > > | ISMAEL | > > > ======== > > > Only for the small landowners and Cubans companies > > > Website: www.sisconge.byethost15.com > > > www.sisconge.hol.es > > > ----- Original Message ----- From: "Carlos Enrique Rodriguez" > > > <cer en racssprg.com.ar> > > > To: "Spanish version of Lazarus List" > > > <lazarus-es en lists.lazarus.freepascal.org> > > > Sent: Thursday, June 25, 2015 10:09 AM > > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta > > > pero > > > no > > > tiene errores aparentes > > > > > > > > > > > > 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 > > > > > > > > > > > > _______________________________________________ > > > Lazarus-es mailing list > > > Lazarus-es en lists.lazarus.freepascal.org > > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > > > > > > > -- > Este mensaje le ha llegado mediante el servicio de correo electronico que > ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema > Nacional de Salud. La persona que envia este correo asume el compromiso de > usar el servicio a tales fines y cumplir con las regulaciones establecidas > > Infomed: http://www.sld.cu/ > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Ismael L. Donis Garcia
to Maikel Enrique Pernia Matos: Ah!, entiendo dices algo asi: SELECT (SELECT t1.x FROM t1 WHERE t1.x = 'algo') AS y,…

Ma�ana les hago llegar otra consulta m�s optimizada porque ya hoy me tengo ir porque estoy apurado por cuestiones que debo resolver ahora.

Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 297 lines
----- Original Message ----- From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 3:11 PM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Ah!, entiendo dices algo asi: SELECT (SELECT t1.x FROM t1 WHERE t1.x = 'algo') AS y, (SELECT t1.x FROM t1 WHERE t1.x != 'algo') AS z FROM t1 El jue, 25-06-2015 a las 14:42 -0400, Ismael L. Donis Garcia escribi�: > No en su caso es mucho m�s f�cil aun ya que todo lo extrae de una sola > tabla > VW_HISTORIASCLINICAS > > Lo que pasa que en la selecci�n de los campos est� realizando consultas > con > wheres relacionados a la tabla del from de la consulta y eso no lo puede > hacer porque el motor se pierde. > > Lo que tienes es que hacer las subconsultas dentro en el from y no delante > del from, delante se pueden hacer pero no puede tener en el where relacion > con el from posterior. > > Las relaciones deben ir desde dentro hacia afuera y nunca desde afuera > hacia > adentro. > > Lo que tiene que hacer es anidar las consultas y como es una sola tabla > poner relaciones con inner join para que le corra m�s r�pido. > > Saludos Reiterados > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- > From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Thursday, June 25, 2015 2:02 PM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > Colegas: > Disculpen, no he seguido el hilo; pero por lo que cita Ismael > > <quote> > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > </quote> > > Pienso que quiz�s la soluci�n correcta es utilizar consultas de uni�n si > son soportadas por el SGBD > > suponiendo que existan dos tablas t1 y t2 y que ambas tengan un campo > com�n (�ndice) al que llamaremos x, adem�s la tabla t1 tiene los campos > a, b y c, la tabla t2 tiene los campos d, e y f, la sintaxis podr�an ser > as�: > > Ejemplo utilizando INNER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 INNER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > En este caso muestra los valores que coincidan de ambas tablas t1 y t2, > que coincidan > > Ejemplo utilizando LEFT OUTER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 LEFT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de > la tabla izquierda (en este caso t1), con los valores de la tabla de la > derecha correspondientes (en este caso t2), o retorna un valor nulo NULL > en caso de no correspondencia. > > Ejemplo utilizando RIGHT OUTER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 RIGHT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de > la tabla derecha (en este caso t2), con los valores de la tabla de la > izquierda correspondientes (en este caso t2), o retorna un valor nulo > NULL en caso de no correspondencia. > > > Saludos, > Maikel > > El jue, 25-06-2015 a las 13:21 -0400, Ismael L. Donis Garcia escribi�: > > Me puse a mirar la consulta detalladamente, antes no lo hab�a realizado. > > Tu > > me disculpas pero esa consulta nunca te va a funcionar ya que lo que > > est�s > > haciendo en ella es claro que el motor no lo va a poder resolver. > > > > Mejor me dices los campos de la tabla y los resultados que quieres > > obtener > > para hacerte la consulta. Una vez realizada la puedes estudiar o te la > > puedo > > explicar mejor. > > > > Lo siguiente nunca te va a funcionar: > > > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > > > Y eso es precisamente lo que tu est�s tratando de hacer. > > > > Para que funcione tendr�as que sacar el select para entre el from y el > > where > > > > Saludos Cordiales > > ======== > > | ISMAEL | > > ======== > > Only for the small landowners and Cubans companies > > Website: www.sisconge.byethost15.com > > www.sisconge.hol.es > > ----- Original Message ----- > > From: "Maxi" <maximiliano.duarte en gmail.com> > > To: "Spanish version of Lazarus List" > > <lazarus-es en lists.lazarus.freepascal.org> > > Sent: Thursday, June 25, 2015 11:53 AM > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > > no > > tiene errores aparentes > > > > > > el "error" esta en el where interior, se ve que hace algo antes y lo > > rompe > > > > El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia > > <slibre en citricos.co.cu> escribi�: > > > Mi consejo personal es que vallas desagregando la consulta para que te > > > facilite localizar el error. > > > > > > Vas haciendo las consultas desde adentro hacia afuera para que vallas > > > mirando los resultados que te dan. > > > > > > Saludos Cordiales > > > ======== > > > | ISMAEL | > > > ======== > > > Only for the small landowners and Cubans companies > > > Website: www.sisconge.byethost15.com > > > www.sisconge.hol.es > > > ----- Original Message ----- From: "Carlos Enrique Rodriguez" > > > <cer en racssprg.com.ar> > > > To: "Spanish version of Lazarus List" > > > <lazarus-es en lists.lazarus.freepascal.org> > > > Sent: Thursday, June 25, 2015 10:09 AM > > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta > > > pero > > > no > > > tiene errores aparentes > > > > > > > > > > > > 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 > > > > > > > > > > > > _______________________________________________ > > > Lazarus-es mailing list > > > Lazarus-es en lists.lazarus.freepascal.org > > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > > > > > > > -- > Este mensaje le ha llegado mediante el servicio de correo electronico que > ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema > Nacional de Salud. La persona que envia este correo asume el compromiso de > usar el servicio a tales fines y cumplir con las regulaciones establecidas > > Infomed: http://www.sld.cu/ > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Maximiliano Duarte
to Ismael L. Donis Garcia

Ismael gracias por tu inter�s.
La consulta si funciona y el motor no es el problema. Uso ems como gestor de bases de datos y ahi corre sin problemas. Incluso una App que est� hecha en vb donde la inserto para hacer informes y si funciona. No es una tabla sino una vista. Y el error esta en el = interno. Si pongo >=, o cualquier cosa si trae. Hay una preparaci�n previa que rompe la consulta. El select para traer campos es valido y es una t�cnica para obtener un valor sin p�rdida de filas que puede suceder con un join.

Earlier message 313 lines
-----Mensaje original----- De: "Ismael L. Donis Garcia" <slibre en citricos.co.cu> Enviado el: ?25/?06/?2015 17:27 Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Asunto: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero notiene errores aparentes Ma�ana les hago llegar otra consulta m�s optimizada porque ya hoy me tengo ir porque estoy apurado por cuestiones que debo resolver ahora. Saludos Reiterados ======== | ISMAEL | ======== Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com www.sisconge.hol.es ----- Original Message ----- From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, June 25, 2015 3:11 PM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Ah!, entiendo dices algo asi: SELECT (SELECT t1.x FROM t1 WHERE t1.x = 'algo') AS y, (SELECT t1.x FROM t1 WHERE t1.x != 'algo') AS z FROM t1 El jue, 25-06-2015 a las 14:42 -0400, Ismael L. Donis Garcia escribi�: > No en su caso es mucho m�s f�cil aun ya que todo lo extrae de una sola > tabla > VW_HISTORIASCLINICAS > > Lo que pasa que en la selecci�n de los campos est� realizando consultas > con > wheres relacionados a la tabla del from de la consulta y eso no lo puede > hacer porque el motor se pierde. > > Lo que tienes es que hacer las subconsultas dentro en el from y no delante > del from, delante se pueden hacer pero no puede tener en el where relacion > con el from posterior. > > Las relaciones deben ir desde dentro hacia afuera y nunca desde afuera > hacia > adentro. > > Lo que tiene que hacer es anidar las consultas y como es una sola tabla > poner relaciones con inner join para que le corra m�s r�pido. > > Saludos Reiterados > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- > From: "Maikel Enrique Pernia Matos" <corba en grannet.grm.sld.cu> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Thursday, June 25, 2015 2:02 PM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > Colegas: > Disculpen, no he seguido el hilo; pero por lo que cita Ismael > > <quote> > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > </quote> > > Pienso que quiz�s la soluci�n correcta es utilizar consultas de uni�n si > son soportadas por el SGBD > > suponiendo que existan dos tablas t1 y t2 y que ambas tengan un campo > com�n (�ndice) al que llamaremos x, adem�s la tabla t1 tiene los campos > a, b y c, la tabla t2 tiene los campos d, e y f, la sintaxis podr�an ser > as�: > > Ejemplo utilizando INNER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 INNER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > En este caso muestra los valores que coincidan de ambas tablas t1 y t2, > que coincidan > > Ejemplo utilizando LEFT OUTER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 LEFT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de > la tabla izquierda (en este caso t1), con los valores de la tabla de la > derecha correspondientes (en este caso t2), o retorna un valor nulo NULL > en caso de no correspondencia. > > Ejemplo utilizando RIGHT OUTER JOIN: > > SELECT > t1.a, > t1.b, > t2.e AS h, > t2.f > FROM t1 RIGHT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL > > La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de > la tabla derecha (en este caso t2), con los valores de la tabla de la > izquierda correspondientes (en este caso t2), o retorna un valor nulo > NULL en caso de no correspondencia. > > > Saludos, > Maikel > > El jue, 25-06-2015 a las 13:21 -0400, Ismael L. Donis Garcia escribi�: > > Me puse a mirar la consulta detalladamente, antes no lo hab�a realizado. > > Tu > > me disculpas pero esa consulta nunca te va a funcionar ya que lo que > > est�s > > haciendo en ella es claro que el motor no lo va a poder resolver. > > > > Mejor me dices los campos de la tabla y los resultados que quieres > > obtener > > para hacerte la consulta. Una vez realizada la puedes estudiar o te la > > puedo > > explicar mejor. > > > > Lo siguiente nunca te va a funcionar: > > > > select x, (select y from t1 where t1.x=t2.x) as y from t2 > > > > Y eso es precisamente lo que tu est�s tratando de hacer. > > > > Para que funcione tendr�as que sacar el select para entre el from y el > > where > > > > Saludos Cordiales > > ======== > > | ISMAEL | > > ======== > > Only for the small landowners and Cubans companies > > Website: www.sisconge.byethost15.com > > www.sisconge.hol.es > > ----- Original Message ----- > > From: "Maxi" <maximiliano.duarte en gmail.com> > > To: "Spanish version of Lazarus List" > > <lazarus-es en lists.lazarus.freepascal.org> > > Sent: Thursday, June 25, 2015 11:53 AM > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > > no > > tiene errores aparentes > > > > > > el "error" esta en el where interior, se ve que hace algo antes y lo > > rompe > > > > El d�a 25 de junio de 2015, 11:53, Ismael L. Donis Garcia > > <slibre en citricos.co.cu> escribi�: > > > Mi consejo personal es que vallas desagregando la consulta para que te > > > facilite localizar el error. > > > > > > Vas haciendo las consultas desde adentro hacia afuera para que vallas > > > mirando los resultados que te dan. > > > > > > Saludos Cordiales > > > ======== > > > | ISMAEL | > > > ======== > > > Only for the small landowners and Cubans companies > > > Website: www.sisconge.byethost15.com > > > www.sisconge.hol.es > > > ----- Original Message ----- From: "Carlos Enrique Rodriguez" > > > <cer en racssprg.com.ar> > > > To: "Spanish version of Lazarus List" > > > <lazarus-es en lists.lazarus.freepascal.org> > > > Sent: Thursday, June 25, 2015 10:09 AM > > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta > > > pero > > > no > > > tiene errores aparentes > > > > > > > > > > > > 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 > > > > > > > > > > > > _______________________________________________ > > > Lazarus-es mailing list > > > Lazarus-es en lists.lazarus.freepascal.org > > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > > > > > > > -- > Este mensaje le ha llegado mediante el servicio de correo electronico que > ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema > Nacional de Salud. La persona que envia este correo asume el compromiso de > usar el servicio a tales fines y cumplir con las regulaciones establecidas > > Infomed: http://www.sld.cu/ > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Jose antonio Cuello Principal
to Maxi: Firebird 2.1.3 Lazarus 1.4.0 FCP 2.6.4 ZeosLib 7.1.4 estable Tengo una consulta medio…

Si hace Select x.* from (...)

te puedes ahorrar ese select y poner directamente el contenido del from puesto que te est�s trayendo todos los campos de la subselect, por lo que directamente

Select Distinct ....

debe traerte el mismo resultado.

Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que el case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso sobra el case, directamente traerse el campo R.FECHAPRACTICA.

Este mismo caso se puede aplicar al siguiente case, pudiendo simplificarse en un select first, en vez de un select Min. Ser� m�s r�pido el first al no tener que procesar todos los registros y ahorrando el Cast de conversi�n de tipo.

En el segundo subselect, a los campos le faltan los alias de la vista (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que siempre enlazamos con la misma vista y los campos se repiten podemos evitar problemas de ambig�edad.

Con todo esto me queda la siguiente select, espero sea m�s sencillo encontrar el problema.

select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, R.FECHAPRACTICA,

(Select first 1 E.FECHAPRACTICA
from VW_HISTORIASCLINICAS E
where E.CUENTA = R.CUENTA
and E.FECHAPRACTICA >= R.FECHAPRACTICA
and E.Practicas = 'Egreso de internaci�n'
order by E.FECHAPRACTICA ASC) as Egreso,

(Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' then SE.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'

Un saludo

Earlier message 62 lines
----- Mensaje original ----- De: "Maxi" <maximiliano.duarte en gmail.com> Para: "Spanish Version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviados: Jueves, 25 de Junio 2015 15:51:57 Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes 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 -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Ismael L. Donis Garcia
to Jose antonio Cuello Principal

Concuerdo con Jos� Antonio que el primer case sobra ya que la consulta la filtras con un where E.Practicas = 'Egreso de internaci�n' Por tal motivo los datos siempre cumpliran esa condici�n

Otra cosa Maxi que no concuerdo contigo es que los JOIN devuelvan valores erroneos, m�s bien pienso que es que no hemos planteado bien la consulta y por eso obtenemos datos no esperados.

Ya Jos� te dio una consulta. Ahora prueba la siguiente y dime resultados.

select x.* from
(select DISTINCT R.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.FECHAPRACTICA AS INGRESO, E.EGRESO, R.NROHC, S.SECTOR FROM
(Select EG.CUENTA, EG.FECHAPRACTICA, MIN(EG.PRACTICAS) as EGRESO from VW_HISTORIASCLINICAS EG
where EG.Practicas = 'Egreso de internaci�n'
group by EG.CUENTA, EG.FECHAPRACTICA) E INNER JOIN (VW_HISTORIASCLINICAS R INNER JOIN
(Select first 1 SE.CUENTA, SE.FECHAPRACTICA, (case when SE.CODIGOPRACTICA = 'SEC_CAMA' then SE.DETALLEPRACTICA else null end) as SECTOR from VW_HISTORIASCLINICAS SE where SE.Practicas = 'Sector' order by SE.FECHAPRACTICA desc) S ON R.CUENTA = S.CUENTA and R.FECHAPRACTICA <= S.FECHAPRACTICA) ON E.CUENTA = R.CUENTA and E.FECHAPRACTICA >= R.FECHAPRACTICA) x
where x.egreso is null

Pruebala con el select externo y sin el.

Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 129 lines
----- Original Message ----- From: "Jose antonio Cuello Principal" <jcuello en artextrading.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Friday, June 26, 2015 3:14 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta perono tiene errores aparentes Si hace Select x.* from (...) te puedes ahorrar ese select y poner directamente el contenido del from puesto que te est�s trayendo todos los campos de la subselect, por lo que directamente Select Distinct .... debe traerte el mismo resultado. Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que el case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso sobra el case, directamente traerse el campo R.FECHAPRACTICA. Este mismo caso se puede aplicar al siguiente case, pudiendo simplificarse en un select first, en vez de un select Min. Ser� m�s r�pido el first al no tener que procesar todos los registros y ahorrando el Cast de conversi�n de tipo. En el segundo subselect, a los campos le faltan los alias de la vista (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que siempre enlazamos con la misma vista y los campos se repiten podemos evitar problemas de ambig�edad. Con todo esto me queda la siguiente select, espero sea m�s sencillo encontrar el problema. select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, R.FECHAPRACTICA, (Select first 1 E.FECHAPRACTICA from VW_HISTORIASCLINICAS E where E.CUENTA = R.CUENTA and E.FECHAPRACTICA >= R.FECHAPRACTICA and E.Practicas = 'Egreso de internaci�n' order by E.FECHAPRACTICA ASC) as Egreso, (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' then SE.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' Un saludo ----- Mensaje original ----- De: "Maxi" <maximiliano.duarte en gmail.com> Para: "Spanish Version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviados: Jueves, 25 de Junio 2015 15:51:57 Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes 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 -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Jose antonio Cuello Principal: Si hace Select x.* from (...) te puedes ahorrar ese select y poner directamente el…

Gracias Jose.
La consulta si bien el case es reemplazable, tu consulta hace lo mismo que la que plantee yo y tarda 1 segundo mas que la mia. Esta consulta es rebuscada por como almacenana los datos. El que desarrollo esto hizo que los datos sean dinamicos al momento de cargar haciendo que en cada registro inserte informacion que despues en pantalla se convierte en un control, edit,memo,listbox, etc. Como no registra un ingreso y egreso del paciente en un mismo registro sino como practicas es que tengo que ir buscando para adelante.

y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es en el componente con el =
le cambio el = por y si trae datos

El d�a 26 de junio de 2015, 4:14, Jose antonio Cuello Principal <jcuello en artextrading.com> escribi�:

Show quoted text 120 lines
Si hace Select x.* from (...) te puedes ahorrar ese select y poner directamente el contenido del from puesto que te est�s trayendo todos los campos de la subselect, por lo que directamente Select Distinct .... debe traerte el mismo resultado. Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que el case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso sobra el case, directamente traerse el campo R.FECHAPRACTICA. Este mismo caso se puede aplicar al siguiente case, pudiendo simplificarse en un select first, en vez de un select Min. Ser� m�s r�pido el first al no tener que procesar todos los registros y ahorrando el Cast de conversi�n de tipo. En el segundo subselect, a los campos le faltan los alias de la vista (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que siempre enlazamos con la misma vista y los campos se repiten podemos evitar problemas de ambig�edad. Con todo esto me queda la siguiente select, espero sea m�s sencillo encontrar el problema. select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, R.FECHAPRACTICA, (Select first 1 E.FECHAPRACTICA from VW_HISTORIASCLINICAS E where E.CUENTA = R.CUENTA and E.FECHAPRACTICA >= R.FECHAPRACTICA and E.Practicas = 'Egreso de internaci�n' order by E.FECHAPRACTICA ASC) as Egreso, (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' then SE.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' Un saludo ----- Mensaje original ----- De: "Maxi" <maximiliano.duarte en gmail.com> Para: "Spanish Version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviados: Jueves, 25 de Junio 2015 15:51:57 Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes 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 -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Jos� Antonio Cuello Dpto. Informatica Artex Trading sa Gold Football sl _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Carlos Enrique Rodriguez
to Maxi

Hola,
No voy a insistir con el null, pero si el problema es el =, entonces hace un like y por las dudas un Upper , ej: WHERE Upper(R.Practicas) LIKE UPPER('Recepci�n internacion'). Lo mismo si ten�s una versi�n no muy vieja pod�s usar TRIM para terminar de limpiar el problema. Una cosa final a mirar es que en el TConnection de Zeos tengas la misma codificaci�n que la BD.

Nos vemos
Carlos

El 26/06/2015 a las 11:55, Maxi escribi�:

Show quoted text 140 lines
Gracias Jose. La consulta si bien el case es reemplazable, tu consulta hace lo mismo que la que plantee yo y tarda 1 segundo mas que la mia. Esta consulta es rebuscada por como almacenana los datos. El que desarrollo esto hizo que los datos sean dinamicos al momento de cargar haciendo que en cada registro inserte informacion que despues en pantalla se convierte en un control, edit,memo,listbox, etc. Como no registra un ingreso y egreso del paciente en un mismo registro sino como practicas es que tengo que ir buscando para adelante. y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es en el componente con el = le cambio el = por y si trae datos El d�a 26 de junio de 2015, 4:14, Jose antonio Cuello Principal <jcuello en artextrading.com> escribi�: > Si hace Select x.* from (...) > > te puedes ahorrar ese select y poner directamente el contenido del from puesto que te est�s trayendo todos los campos de la subselect, por lo que directamente > > Select Distinct .... > > debe traerte el mismo resultado. > > Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que el case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso sobra el case, directamente traerse el campo R.FECHAPRACTICA. > > Este mismo caso se puede aplicar al siguiente case, pudiendo simplificarse en un select first, en vez de un select Min. Ser� m�s r�pido el first al no tener que procesar todos los registros y ahorrando el Cast de conversi�n de tipo. > > En el segundo subselect, a los campos le faltan los alias de la vista (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que siempre enlazamos con la misma vista y los campos se repiten podemos evitar problemas de ambig�edad. > > Con todo esto me queda la siguiente select, espero sea m�s sencillo encontrar el problema. > > > select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, R.FECHAPRACTICA, > > (Select first 1 E.FECHAPRACTICA > from VW_HISTORIASCLINICAS E > where E.CUENTA = R.CUENTA > and E.FECHAPRACTICA >= R.FECHAPRACTICA > and E.Practicas = 'Egreso de internaci�n' > order by E.FECHAPRACTICA ASC) as Egreso, > > (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' then SE.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' > > > Un saludo > > > > > ----- Mensaje original ----- > De: "Maxi" <maximiliano.duarte en gmail.com> > Para: "Spanish Version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> > Enviados: Jueves, 25 de Junio 2015 15:51:57 > Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes > > 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 > > -- > El que pregunta aprende, y el que contesta aprende a responder. > > No a la obsolecencia programada: > http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml > > Linux User #495070 > http://domonetic.com/blog > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > -- > Jos� Antonio Cuello > Dpto. Informatica > Artex Trading sa > Gold Football sl > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email

Ismael L. Donis Garcia
to Maxi: Gracias Jose. La consulta si bien el case es reemplazable, tu consulta hace lo mismo que…

Maxi probaste la consulta �ltima que te mand�? La de hoy.

La verdad Maxi que no te entiendo bien, Si la consulta est� bien hecha y no trae datos es porque los datos no cumplen la condici�n del filtro que est�s planteando. Por lo que el error no est� en la consulta SINO en la forma que tu has planteado la consulta para los datos que quieres optener.

Por eso lo �nico que puedo hacerte para ayudarte es que me pases UNA MUESTRA peque�a de los datos al pribado y lo que tu necesitas optener producto de la consulta para poderte hacer bien la consulta.

Por mi parte no puedo hacer nada m�s por ayudarte.

Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 175 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Friday, June 26, 2015 10:55 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Gracias Jose. La consulta si bien el case es reemplazable, tu consulta hace lo mismo que la que plantee yo y tarda 1 segundo mas que la mia. Esta consulta es rebuscada por como almacenana los datos. El que desarrollo esto hizo que los datos sean dinamicos al momento de cargar haciendo que en cada registro inserte informacion que despues en pantalla se convierte en un control, edit,memo,listbox, etc. Como no registra un ingreso y egreso del paciente en un mismo registro sino como practicas es que tengo que ir buscando para adelante. y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es en el componente con el = le cambio el = por y si trae datos El d�a 26 de junio de 2015, 4:14, Jose antonio Cuello Principal <jcuello en artextrading.com> escribi�: > Si hace Select x.* from (...) > > te puedes ahorrar ese select y poner directamente el contenido del from > puesto que te est�s trayendo todos los campos de la subselect, por lo que > directamente > > Select Distinct .... > > debe traerte el mismo resultado. > > Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el > campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que > el case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso > sobra el case, directamente traerse el campo R.FECHAPRACTICA. > > Este mismo caso se puede aplicar al siguiente case, pudiendo simplificarse > en un select first, en vez de un select Min. Ser� m�s r�pido el first al > no tener que procesar todos los registros y ahorrando el Cast de > conversi�n de tipo. > > En el segundo subselect, a los campos le faltan los alias de la vista > (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que > siempre enlazamos con la misma vista y los campos se repiten podemos > evitar problemas de ambig�edad. > > Con todo esto me queda la siguiente select, espero sea m�s sencillo > encontrar el problema. > > > select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, > R.FECHAPRACTICA, > > (Select first 1 E.FECHAPRACTICA > from VW_HISTORIASCLINICAS E > where E.CUENTA = R.CUENTA > and E.FECHAPRACTICA >= R.FECHAPRACTICA > and E.Practicas = 'Egreso de internaci�n' > order by E.FECHAPRACTICA ASC) as Egreso, > > (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' > then SE.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' > > > Un saludo > > > > > ----- Mensaje original ----- > De: "Maxi" <maximiliano.duarte en gmail.com> > Para: "Spanish Version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Enviados: Jueves, 25 de Junio 2015 15:51:57 > Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no > tiene errores aparentes > > 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 > > -- > El que pregunta aprende, y el que contesta aprende a responder. > > No a la obsolecencia programada: > http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml > > Linux User #495070 > http://domonetic.com/blog > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > -- > Jos� Antonio Cuello > Dpto. Informatica > Artex Trading sa > Gold Football sl > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Ismael L. Donis Garcia

Ismael, como te explico para que entiendas!!!

Si uso un gestor como SQL manager for interbase & firebird, flamerobin o cualquiera. Si trae datos y si se cumplen las condiciones.

El control de sqlquery de lazarus NO trae datos, de otro entorno si trae

El d�a 26 de junio de 2015, 12:08, Ismael L. Donis Garcia <slibre en citricos.co.cu> escribi�:

Show quoted text 209 lines
Maxi probaste la consulta �ltima que te mand�? La de hoy. La verdad Maxi que no te entiendo bien, Si la consulta est� bien hecha y no trae datos es porque los datos no cumplen la condici�n del filtro que est�s planteando. Por lo que el error no est� en la consulta SINO en la forma que tu has planteado la consulta para los datos que quieres optener. Por eso lo �nico que puedo hacerte para ayudarte es que me pases UNA MUESTRA peque�a de los datos al pribado y lo que tu necesitas optener producto de la consulta para poderte hacer bien la consulta. Por mi parte no puedo hacer nada m�s por ayudarte. Saludos Reiterados ======== | ISMAEL | ======== Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com www.sisconge.hol.es ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Friday, June 26, 2015 10:55 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Gracias Jose. La consulta si bien el case es reemplazable, tu consulta hace lo mismo que la que plantee yo y tarda 1 segundo mas que la mia. Esta consulta es rebuscada por como almacenana los datos. El que desarrollo esto hizo que los datos sean dinamicos al momento de cargar haciendo que en cada registro inserte informacion que despues en pantalla se convierte en un control, edit,memo,listbox, etc. Como no registra un ingreso y egreso del paciente en un mismo registro sino como practicas es que tengo que ir buscando para adelante. y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es en el componente con el = le cambio el = por y si trae datos El d�a 26 de junio de 2015, 4:14, Jose antonio Cuello Principal <jcuello en artextrading.com> escribi�: > > Si hace Select x.* from (...) > > te puedes ahorrar ese select y poner directamente el contenido del from > puesto que te est�s trayendo todos los campos de la subselect, por lo que > directamente > > Select Distinct .... > > debe traerte el mismo resultado. > > Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el > campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que el > case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso sobra > el case, directamente traerse el campo R.FECHAPRACTICA. > > Este mismo caso se puede aplicar al siguiente case, pudiendo simplificarse > en un select first, en vez de un select Min. Ser� m�s r�pido el first al no > tener que procesar todos los registros y ahorrando el Cast de conversi�n de > tipo. > > En el segundo subselect, a los campos le faltan los alias de la vista > (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que > siempre enlazamos con la misma vista y los campos se repiten podemos evitar > problemas de ambig�edad. > > Con todo esto me queda la siguiente select, espero sea m�s sencillo > encontrar el problema. > > > select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, > R.FECHAPRACTICA, > > (Select first 1 E.FECHAPRACTICA > from VW_HISTORIASCLINICAS E > where E.CUENTA = R.CUENTA > and E.FECHAPRACTICA >= R.FECHAPRACTICA > and E.Practicas = 'Egreso de internaci�n' > order by E.FECHAPRACTICA ASC) as Egreso, > > (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' > then SE.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' > > > Un saludo > > > > > ----- Mensaje original ----- > De: "Maxi" <maximiliano.duarte en gmail.com> > Para: "Spanish Version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Enviados: Jueves, 25 de Junio 2015 15:51:57 > Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no > tiene errores aparentes > > 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 > > -- > El que pregunta aprende, y el que contesta aprende a responder. > > No a la obsolecencia programada: > > http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml > > Linux User #495070 > http://domonetic.com/blog > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > -- > Jos� Antonio Cuello > Dpto. Informatica > Artex Trading sa > Gold Football sl > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Carlos Enrique Rodriguez: No voy a insistir con el null, pero si el problema es el =, entonces hace un like y por…

Carlos ahora si le encontr�.
Era el codepage, nunca lo toco porque no uso eso y estaba mal ahora si trae los datos

El d�a 26 de junio de 2015, 12:07, Carlos Enrique Rodriguez <cer en racssprg.com.ar> escribi�:

Show quoted text 179 lines
Hola, No voy a insistir con el null, pero si el problema es el =, entonces hace un like y por las dudas un Upper , ej: WHERE Upper(R.Practicas) LIKE UPPER('Recepci�n internacion'). Lo mismo si ten�s una versi�n no muy vieja pod�s usar TRIM para terminar de limpiar el problema. Una cosa final a mirar es que en el TConnection de Zeos tengas la misma codificaci�n que la BD. Nos vemos Carlos El 26/06/2015 a las 11:55, Maxi escribi�: > > Gracias Jose. > La consulta si bien el case es reemplazable, tu consulta hace lo mismo > que la que plantee yo y tarda 1 segundo mas que la mia. > Esta consulta es rebuscada por como almacenana los datos. El que > desarrollo esto hizo que los datos sean dinamicos al momento de cargar > haciendo que en cada registro inserte informacion que despues en > pantalla se convierte en un control, edit,memo,listbox, etc. > Como no registra un ingreso y egreso del paciente en un mismo registro > sino como practicas es que tengo que ir buscando para adelante. > > > y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es > en el componente con el = > le cambio el = por y si trae datos > > > El d�a 26 de junio de 2015, 4:14, Jose antonio Cuello Principal > <jcuello en artextrading.com> escribi�: >> >> Si hace Select x.* from (...) >> >> te puedes ahorrar ese select y poner directamente el contenido del from >> puesto que te est�s trayendo todos los campos de la subselect, por lo que >> directamente >> >> Select Distinct .... >> >> debe traerte el mismo resultado. >> >> Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el >> campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que el >> case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso sobra >> el case, directamente traerse el campo R.FECHAPRACTICA. >> >> Este mismo caso se puede aplicar al siguiente case, pudiendo >> simplificarse en un select first, en vez de un select Min. Ser� m�s r�pido >> el first al no tener que procesar todos los registros y ahorrando el Cast de >> conversi�n de tipo. >> >> En el segundo subselect, a los campos le faltan los alias de la vista >> (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que >> siempre enlazamos con la misma vista y los campos se repiten podemos evitar >> problemas de ambig�edad. >> >> Con todo esto me queda la siguiente select, espero sea m�s sencillo >> encontrar el problema. >> >> >> select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, >> R.FECHAPRACTICA, >> >> (Select first 1 E.FECHAPRACTICA >> from VW_HISTORIASCLINICAS E >> where E.CUENTA = R.CUENTA >> and E.FECHAPRACTICA >= R.FECHAPRACTICA >> and E.Practicas = 'Egreso de internaci�n' >> order by E.FECHAPRACTICA ASC) as Egreso, >> >> (Select first 1 (case when SE.CODIGOPRACTICA = >> 'SEC_CAMA' then SE.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' >> >> >> Un saludo >> >> >> >> >> ----- Mensaje original ----- >> De: "Maxi" <maximiliano.duarte en gmail.com> >> Para: "Spanish Version of Lazarus List" >> <lazarus-es en lists.lazarus.freepascal.org> >> Enviados: Jueves, 25 de Junio 2015 15:51:57 >> Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no >> tiene errores aparentes >> >> 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 >> >> -- >> El que pregunta aprende, y el que contesta aprende a responder. >> >> No a la obsolecencia programada: >> >> http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml >> >> Linux User #495070 >> http://domonetic.com/blog >> >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es >> >> -- >> Jos� Antonio Cuello >> Dpto. Informatica >> Artex Trading sa >> Gold Football sl >> >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Carlos Enrique Rodriguez
to Maxi

B�rbaro!

Nos vemos Carlos

El 26/06/2015 a las 12:28, Maxi escribi�:

Show quoted text 16 lines
Carlos ahora si le encontr�. Era el codepage, nunca lo toco porque no uso eso y estaba mal ahora si trae los datos El d�a 26 de junio de 2015, 12:07, Carlos Enrique Rodriguez <cer en racssprg.com.ar> escribi�: > Hola, > No voy a insistir con el null, pero si el problema es el =, entonces > hace un like y por las dudas un Upper , ej: WHERE Upper(R.Practicas) LIKE > UPPER('Recepci�n internacion'). Lo mismo si ten�s una versi�n no muy vieja > pod�s usar TRIM para terminar de limpiar el problema. Una cosa final a mirar > es que en el TConnection de Zeos tengas la misma codificaci�n que la BD. > > Nos vemos > Carlos >

Reply by email

Martin Gomez
to Carlos Enrique Rodriguez

Perdon, llego tarde...
entonces el problema resid�a en los componentes ZEOS y el Query estaba bien?

2015-06-26 12:32 GMT-03:00 Carlos Enrique Rodriguez <cer en racssprg.com.ar>:

Show quoted text 34 lines
B�rbaro! Nos vemos Carlos El 26/06/2015 a las 12:28, Maxi escribi�: > Carlos ahora si le encontr�. > Era el codepage, nunca lo toco porque no uso eso y estaba mal ahora si > trae los datos > > El d�a 26 de junio de 2015, 12:07, Carlos Enrique Rodriguez > <cer en racssprg.com.ar> escribi�: > >> Hola, >> No voy a insistir con el null, pero si el problema es el =, >> entonces >> hace un like y por las dudas un Upper , ej: WHERE Upper(R.Practicas) >> LIKE >> UPPER('Recepci�n internacion'). Lo mismo si ten�s una versi�n no muy >> vieja >> pod�s usar TRIM para terminar de limpiar el problema. Una cosa final a >> mirar >> es que en el TConnection de Zeos tengas la misma codificaci�n que la BD. >> >> Nos vemos >> Carlos >> >> _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
? Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program. ? ? *Linus Torvalds* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20150626/4d529e56/attachment-0001.html>

Reply by email

Maxi
to Martin Gomez

en ninguna de las dos
en el code page.

El d�a 26 de junio de 2015, 12:39, Martin Gomez <mmgomez en gmail.com> escribi�:

Show quoted text 52 lines
Perdon, llego tarde... entonces el problema resid�a en los componentes ZEOS y el Query estaba bien? 2015-06-26 12:32 GMT-03:00 Carlos Enrique Rodriguez <cer en racssprg.com.ar>: > > B�rbaro! > > Nos vemos Carlos > > El 26/06/2015 a las 12:28, Maxi escribi�: >> >> Carlos ahora si le encontr�. >> Era el codepage, nunca lo toco porque no uso eso y estaba mal ahora si >> trae los datos >> >> El d�a 26 de junio de 2015, 12:07, Carlos Enrique Rodriguez >> <cer en racssprg.com.ar> escribi�: >>> >>> Hola, >>> No voy a insistir con el null, pero si el problema es el =, >>> entonces >>> hace un like y por las dudas un Upper , ej: WHERE Upper(R.Practicas) >>> LIKE >>> UPPER('Recepci�n internacion'). Lo mismo si ten�s una versi�n no muy >>> vieja >>> pod�s usar TRIM para terminar de limpiar el problema. Una cosa final a >>> mirar >>> es que en el TConnection de Zeos tengas la misma codificaci�n que la BD. >>> >>> Nos vemos >>> Carlos >>> > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program. Linus Torvalds _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Ismael L. Donis Garcia
to Maxi: Ismael, como te explico para que entiendas!!! Si uso un gestor como SQL manager for…

Pues si era as� el problema no era la consulta como te has dado ya cuenta.

La verdad que me pusiste a analizar la consulta por gusto.

De todos modos creo que la debes optimizar, aunque ya se que has trabajado en eso. Los inner join te dan mucha velocidad en el acceso a los datos siempre y cuando las tablas o consultas tengan los �ndices bien sobre las relaciones que vas a realizar. Pero si el dise�o no es tuyo medio que est�s enredado.

Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 253 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Friday, June 26, 2015 11:25 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Ismael, como te explico para que entiendas!!! Si uso un gestor como SQL manager for interbase & firebird, flamerobin o cualquiera. Si trae datos y si se cumplen las condiciones. El control de sqlquery de lazarus NO trae datos, de otro entorno si trae El d�a 26 de junio de 2015, 12:08, Ismael L. Donis Garcia <slibre en citricos.co.cu> escribi�: > Maxi probaste la consulta �ltima que te mand�? La de hoy. > > La verdad Maxi que no te entiendo bien, Si la consulta est� bien hecha y > no > trae datos es porque los datos no cumplen la condici�n del filtro que > est�s > planteando. Por lo que el error no est� en la consulta SINO en la forma > que > tu has planteado la consulta para los datos que quieres optener. > > Por eso lo �nico que puedo hacerte para ayudarte es que me pases UNA > MUESTRA > peque�a de los datos al pribado y lo que tu necesitas optener producto de > la > consulta para poderte hacer bien la consulta. > > Por mi parte no puedo hacer nada m�s por ayudarte. > > Saludos Reiterados > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Friday, June 26, 2015 10:55 AM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > > Gracias Jose. > La consulta si bien el case es reemplazable, tu consulta hace lo mismo > que la que plantee yo y tarda 1 segundo mas que la mia. > Esta consulta es rebuscada por como almacenana los datos. El que > desarrollo esto hizo que los datos sean dinamicos al momento de cargar > haciendo que en cada registro inserte informacion que despues en > pantalla se convierte en un control, edit,memo,listbox, etc. > Como no registra un ingreso y egreso del paciente en un mismo registro > sino como practicas es que tengo que ir buscando para adelante. > > > y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es > en el componente con el = > le cambio el = por y si trae datos > > > El d�a 26 de junio de 2015, 4:14, Jose antonio Cuello Principal > <jcuello en artextrading.com> escribi�: >> >> Si hace Select x.* from (...) >> >> te puedes ahorrar ese select y poner directamente el contenido del from >> puesto que te est�s trayendo todos los campos de la subselect, por lo que >> directamente >> >> Select Distinct .... >> >> debe traerte el mismo resultado. >> >> Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el >> campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que >> el >> case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso >> sobra >> el case, directamente traerse el campo R.FECHAPRACTICA. >> >> Este mismo caso se puede aplicar al siguiente case, pudiendo >> simplificarse >> en un select first, en vez de un select Min. Ser� m�s r�pido el first al >> no >> tener que procesar todos los registros y ahorrando el Cast de conversi�n >> de >> tipo. >> >> En el segundo subselect, a los campos le faltan los alias de la vista >> (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que >> siempre enlazamos con la misma vista y los campos se repiten podemos >> evitar >> problemas de ambig�edad. >> >> Con todo esto me queda la siguiente select, espero sea m�s sencillo >> encontrar el problema. >> >> >> select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, >> R.FECHAPRACTICA, >> >> (Select first 1 E.FECHAPRACTICA >> from VW_HISTORIASCLINICAS E >> where E.CUENTA = R.CUENTA >> and E.FECHAPRACTICA >= R.FECHAPRACTICA >> and E.Practicas = 'Egreso de internaci�n' >> order by E.FECHAPRACTICA ASC) as Egreso, >> >> (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' >> then SE.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' >> >> >> Un saludo >> >> >> >> >> ----- Mensaje original ----- >> De: "Maxi" <maximiliano.duarte en gmail.com> >> Para: "Spanish Version of Lazarus List" >> <lazarus-es en lists.lazarus.freepascal.org> >> Enviados: Jueves, 25 de Junio 2015 15:51:57 >> Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no >> tiene errores aparentes >> >> 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 >> >> -- >> El que pregunta aprende, y el que contesta aprende a responder. >> >> No a la obsolecencia programada: >> >> http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml >> >> Linux User #495070 >> http://domonetic.com/blog >> >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es >> >> -- >> Jos� Antonio Cuello >> Dpto. Informatica >> Artex Trading sa >> Gold Football sl >> >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > > -- > El que pregunta aprende, y el que contesta aprende a responder. > > No a la obsolecencia programada: > http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml > > Linux User #495070 > http://domonetic.com/blog > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Ismael L. Donis Garcia

Gracias Ismael, y a todos. Como siempre la comunidad presente.

La consulta debo optimizarla seguro. Como tengo acceso a la BD puedo agregarle indices y mas cosas.

El d�a 26 de junio de 2015, 15:22, Ismael L. Donis Garcia <slibre en citricos.co.cu> escribi�:

Show quoted text 287 lines
Pues si era as� el problema no era la consulta como te has dado ya cuenta. La verdad que me pusiste a analizar la consulta por gusto. De todos modos creo que la debes optimizar, aunque ya se que has trabajado en eso. Los inner join te dan mucha velocidad en el acceso a los datos siempre y cuando las tablas o consultas tengan los �ndices bien sobre las relaciones que vas a realizar. Pero si el dise�o no es tuyo medio que est�s enredado. Saludos Reiterados ======== | ISMAEL | ======== Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com www.sisconge.hol.es ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Friday, June 26, 2015 11:25 AM Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes Ismael, como te explico para que entiendas!!! Si uso un gestor como SQL manager for interbase & firebird, flamerobin o cualquiera. Si trae datos y si se cumplen las condiciones. El control de sqlquery de lazarus NO trae datos, de otro entorno si trae El d�a 26 de junio de 2015, 12:08, Ismael L. Donis Garcia <slibre en citricos.co.cu> escribi�: > > Maxi probaste la consulta �ltima que te mand�? La de hoy. > > La verdad Maxi que no te entiendo bien, Si la consulta est� bien hecha y > no > trae datos es porque los datos no cumplen la condici�n del filtro que > est�s > planteando. Por lo que el error no est� en la consulta SINO en la forma > que > tu has planteado la consulta para los datos que quieres optener. > > Por eso lo �nico que puedo hacerte para ayudarte es que me pases UNA > MUESTRA > peque�a de los datos al pribado y lo que tu necesitas optener producto de > la > consulta para poderte hacer bien la consulta. > > Por mi parte no puedo hacer nada m�s por ayudarte. > > Saludos Reiterados > ======== > | ISMAEL | > ======== > Only for the small landowners and Cubans companies > Website: www.sisconge.byethost15.com > www.sisconge.hol.es > ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Friday, June 26, 2015 10:55 AM > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero > no > tiene errores aparentes > > > > Gracias Jose. > La consulta si bien el case es reemplazable, tu consulta hace lo mismo > que la que plantee yo y tarda 1 segundo mas que la mia. > Esta consulta es rebuscada por como almacenana los datos. El que > desarrollo esto hizo que los datos sean dinamicos al momento de cargar > haciendo que en cada registro inserte informacion que despues en > pantalla se convierte en un control, edit,memo,listbox, etc. > Como no registra un ingreso y egreso del paciente en un mismo registro > sino como practicas es que tengo que ir buscando para adelante. > > > y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es > en el componente con el = > le cambio el = por y si trae datos > > > El d�a 26 de junio de 2015, 4:14, Jose antonio Cuello Principal > <jcuello en artextrading.com> escribi�: >> >> >> Si hace Select x.* from (...) >> >> te puedes ahorrar ese select y poner directamente el contenido del from >> puesto que te est�s trayendo todos los campos de la subselect, por lo que >> directamente >> >> Select Distinct .... >> >> debe traerte el mismo resultado. >> >> Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el >> campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que >> el >> case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso >> sobra >> el case, directamente traerse el campo R.FECHAPRACTICA. >> >> Este mismo caso se puede aplicar al siguiente case, pudiendo >> simplificarse >> en un select first, en vez de un select Min. Ser� m�s r�pido el first al >> no >> tener que procesar todos los registros y ahorrando el Cast de conversi�n >> de >> tipo. >> >> En el segundo subselect, a los campos le faltan los alias de la vista >> (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que >> siempre enlazamos con la misma vista y los campos se repiten podemos >> evitar >> problemas de ambig�edad. >> >> Con todo esto me queda la siguiente select, espero sea m�s sencillo >> encontrar el problema. >> >> >> select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC, >> R.FECHAPRACTICA, >> >> (Select first 1 E.FECHAPRACTICA >> from VW_HISTORIASCLINICAS E >> where E.CUENTA = R.CUENTA >> and E.FECHAPRACTICA >= R.FECHAPRACTICA >> and E.Practicas = 'Egreso de internaci�n' >> order by E.FECHAPRACTICA ASC) as Egreso, >> >> (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA' >> then SE.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' >> >> >> Un saludo >> >> >> >> >> ----- Mensaje original ----- >> De: "Maxi" <maximiliano.duarte en gmail.com> >> Para: "Spanish Version of Lazarus List" >> <lazarus-es en lists.lazarus.freepascal.org> >> Enviados: Jueves, 25 de Junio 2015 15:51:57 >> Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no >> tiene errores aparentes >> >> 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 >> >> -- >> El que pregunta aprende, y el que contesta aprende a responder. >> >> No a la obsolecencia programada: >> >> >> http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml >> >> Linux User #495070 >> http://domonetic.com/blog >> >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es >> >> -- >> Jos� Antonio Cuello >> Dpto. Informatica >> Artex Trading sa >> Gold Football sl >> >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > > > -- > El que pregunta aprende, y el que contesta aprende a responder. > > No a la obsolecencia programada: > > http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml > > Linux User #495070 > http://domonetic.com/blog > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email