<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body><div><div style="font-family: Calibri,sans-serif; font-size: 11pt;">Ismael gracias por tu interés.<br>La consulta si funciona y el motor no es el problema.<br>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.<br>No es una tabla sino una vista. Y el error esta en el = interno. Si pongo >=, <> o cualquier cosa si trae.<br>Hay una preparación previa que rompe la consulta.<br>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.</div></div><div dir="ltr"><hr><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">De: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:slibre@citricos.co.cu">Ismael L. Donis Garcia</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Enviado el: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">25/06/2015 17:27</span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Para: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:lazarus-es@lists.lazarus.freepascal.org">Spanish version of Lazarus List</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Asunto: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero notiene errores aparentes</span><br><br></div>Mañana les hago llegar otra consulta más optimizada porque ya hoy me tengo <br>ir porque estoy apurado por cuestiones que debo resolver ahora.<br><br>Saludos Reiterados<br>========<br>| ISMAEL |<br>========<br>Only for the small landowners and Cubans companies<br>Website: www.sisconge.byethost15.com<br> www.sisconge.hol.es<br>----- Original Message ----- <br>From: "Maikel Enrique Pernia Matos" <corba@grannet.grm.sld.cu><br>To: "Spanish version of Lazarus List" <br><lazarus-es@lists.lazarus.freepascal.org><br>Sent: Thursday, June 25, 2015 3:11 PM<br>Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no <br>tiene errores aparentes<br><br><br>Ah!, entiendo dices algo asi:<br><br>SELECT<br> (SELECT t1.x FROM t1 WHERE t1.x = 'algo') AS y,<br> (SELECT t1.x FROM t1 WHERE t1.x != 'algo') AS z<br>FROM t1<br><br><br>El jue, 25-06-2015 a las 14:42 -0400, Ismael L. Donis Garcia escribió:<br>> No en su caso es mucho más fácil aun ya que todo lo extrae de una sola <br>> tabla<br>> VW_HISTORIASCLINICAS<br>><br>> Lo que pasa que en la selección de los campos está realizando consultas <br>> con<br>> wheres relacionados a la tabla del from de la consulta y eso no lo puede<br>> hacer porque el motor se pierde.<br>><br>> Lo que tienes es que hacer las subconsultas dentro en el from y no delante<br>> del from, delante se pueden hacer pero no puede tener en el where relacion<br>> con el from posterior.<br>><br>> Las relaciones deben ir desde dentro hacia afuera y nunca desde afuera <br>> hacia<br>> adentro.<br>><br>> Lo que tiene que hacer es anidar las consultas y como es una sola tabla<br>> poner relaciones con inner join para que le corra más rápido.<br>><br>> Saludos Reiterados<br>> ========<br>> | ISMAEL |<br>> ========<br>> Only for the small landowners and Cubans companies<br>> Website: www.sisconge.byethost15.com<br>> www.sisconge.hol.es<br>> ----- Original Message ----- <br>> From: "Maikel Enrique Pernia Matos" <corba@grannet.grm.sld.cu><br>> To: "Spanish version of Lazarus List"<br>> <lazarus-es@lists.lazarus.freepascal.org><br>> Sent: Thursday, June 25, 2015 2:02 PM<br>> Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero <br>> no<br>> tiene errores aparentes<br>><br>><br>> Colegas:<br>> Disculpen, no he seguido el hilo; pero por lo que cita Ismael<br>><br>> <quote><br>><br>> select x, (select y from t1 where t1.x=t2.x) as y from t2<br>><br>> </quote><br>><br>> Pienso que quizás la solución correcta es utilizar consultas de unión si<br>> son soportadas por el SGBD<br>><br>> suponiendo que existan dos tablas t1 y t2 y que ambas tengan un campo<br>> común (índice) al que llamaremos x, además la tabla t1 tiene los campos<br>> a, b y c, la tabla t2 tiene los campos d, e y f, la sintaxis podrían ser<br>> así:<br>><br>> Ejemplo utilizando INNER JOIN:<br>><br>> SELECT<br>> t1.a,<br>> t1.b,<br>> t2.e AS h,<br>> t2.f<br>> FROM t1 INNER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL<br>><br>> En este caso muestra los valores que coincidan de ambas tablas t1 y t2,<br>> que coincidan<br>><br>> Ejemplo utilizando LEFT OUTER JOIN:<br>><br>> SELECT<br>> t1.a,<br>> t1.b,<br>> t2.e AS h,<br>> t2.f<br>> FROM t1 LEFT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL<br>><br>> La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de<br>> la tabla izquierda (en este caso t1), con los valores de la tabla de la<br>> derecha correspondientes (en este caso t2), o retorna un valor nulo NULL<br>> en caso de no correspondencia.<br>><br>> Ejemplo utilizando RIGHT OUTER JOIN:<br>><br>> SELECT<br>> t1.a,<br>> t1.b,<br>> t2.e AS h,<br>> t2.f<br>> FROM t1 RIGHT OUTER JOIN t2 ON t1.x = t2.x WHERE t1.c IS NOT NULL<br>><br>> La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de<br>> la tabla derecha (en este caso t2), con los valores de la tabla de la<br>> izquierda correspondientes (en este caso t2), o retorna un valor nulo<br>> NULL en caso de no correspondencia.<br>><br>><br>> Saludos,<br>> Maikel<br>><br>> El jue, 25-06-2015 a las 13:21 -0400, Ismael L. Donis Garcia escribió:<br>> > Me puse a mirar la consulta detalladamente, antes no lo había realizado.<br>> > Tu<br>> > me disculpas pero esa consulta nunca te va a funcionar ya que lo que <br>> > estás<br>> > haciendo en ella es claro que el motor no lo va a poder resolver.<br>> ><br>> > Mejor me dices los campos de la tabla y los resultados que quieres <br>> > obtener<br>> > para hacerte la consulta. Una vez realizada la puedes estudiar o te la<br>> > puedo<br>> > explicar mejor.<br>> ><br>> > Lo siguiente nunca te va a funcionar:<br>> ><br>> > select x, (select y from t1 where t1.x=t2.x) as y from t2<br>> ><br>> > Y eso es precisamente lo que tu estás tratando de hacer.<br>> ><br>> > Para que funcione tendrías que sacar el select para entre el from y el<br>> > where<br>> ><br>> > Saludos Cordiales<br>> > ========<br>> > | ISMAEL |<br>> > ========<br>> > Only for the small landowners and Cubans companies<br>> > Website: www.sisconge.byethost15.com<br>> > www.sisconge.hol.es<br>> > ----- Original Message ----- <br>> > From: "Maxi" <maximiliano.duarte@gmail.com><br>> > To: "Spanish version of Lazarus List"<br>> > <lazarus-es@lists.lazarus.freepascal.org><br>> > Sent: Thursday, June 25, 2015 11:53 AM<br>> > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero<br>> > no<br>> > tiene errores aparentes<br>> ><br>> ><br>> > el "error" esta en el where interior, se ve que hace algo antes y lo <br>> > rompe<br>> ><br>> > El día 25 de junio de 2015, 11:53, Ismael L. Donis Garcia<br>> > <slibre@citricos.co.cu> escribió:<br>> > > Mi consejo personal es que vallas desagregando la consulta para que te<br>> > > facilite localizar el error.<br>> > ><br>> > > Vas haciendo las consultas desde adentro hacia afuera para que vallas<br>> > > mirando los resultados que te dan.<br>> > ><br>> > > Saludos Cordiales<br>> > > ========<br>> > > | ISMAEL |<br>> > > ========<br>> > > Only for the small landowners and Cubans companies<br>> > > Website: www.sisconge.byethost15.com<br>> > > www.sisconge.hol.es<br>> > > ----- Original Message ----- From: "Carlos Enrique Rodriguez"<br>> > > <cer@racssprg.com.ar><br>> > > To: "Spanish version of Lazarus List"<br>> > > <lazarus-es@lists.lazarus.freepascal.org><br>> > > Sent: Thursday, June 25, 2015 10:09 AM<br>> > > Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta <br>> > > pero<br>> > > no<br>> > > tiene errores aparentes<br>> > ><br>> > ><br>> > ><br>> > > Hola,<br>> > > Si no te da error, una de las cuestiones que se me ocurre que<br>> > > puede estar pasando es que tengas valores NULL en alguno de los campos<br>> > > que vinculan tablas o están en el where. Eso lo he sufrido más de una<br>> > > vez. :)<br>> > ><br>> > > Nos vemos<br>> > > Carlos<br>> > ><br>> > ><br>> > > El 25/06/2015 a las 10:51, Maxi escribió:<br>> > >><br>> > >> Firebird 2.1.3<br>> > >> Lazarus 1.4.0 FCP 2.6.4<br>> > >> ZeosLib 7.1.4 estable<br>> > >><br>> > >> Tengo una consulta medio rara por como esta organizado el<br>> > >> almacenamiento (no es mi base aclaro) la consulta funciona en otros<br>> > >> manejadores de datos sin problemas pero en el ide de Lazarus no trae<br>> > >> datos pero no da error en la consulta<br>> > >><br>> > >> Creo que sobreinterpreta o prepara la consulta y algo no le gusta a<br>> > >> estos controles porque no trae datos si los nombres de los campos.<br>> > >> sospecho esto porque en el generador de consultas del componente<br>> > >> sqlquery al hacer el chequeo de sintaxis dice que espera una , en una<br>> > >> linea<br>> > >><br>> > >> No me paso antes con este tipo de consultas.<br>> > >><br>> > >> select x.* from<br>> > >> (select<br>> > >> DISTINCT<br>> > >> r.CUENTA,<br>> > >> R.NOMBRE,<br>> > >> R.OBRASOCIAL,<br>> > >> case when R.Practicas = 'Recepción internacion' then <br>> > >> R.FECHAPRACTICA<br>> > >> else null end as Ingreso,<br>> > >> CAST((Select MIN(case when E.Practicas = 'Egreso de internación'<br>> > >> then E.FECHAPRACTICA else null end) as Egreso from<br>> > >> VW_HISTORIASCLINICAS E<br>> > >> where E.CUENTA = R.CUENTA and E.FECHAPRACTICA >=<br>> > >> R.FECHAPRACTICA<br>> > >> and E.Practicas = 'Egreso de internación'<br>> > >> ) as DATE) as Egreso,<br>> > >> R.NROHC,<br>> > >> (Select first 1 (case when CODIGOPRACTICA = 'SEC_CAMA' then<br>> > >> DETALLEPRACTICA else null end) as sector from<br>> > >> VW_HISTORIASCLINICAS SE<br>> > >> where<br>> > >> SE.CUENTA = R.CUENTA<br>> > >> and<br>> > >> SE.FECHAPRACTICA >= R.FECHAPRACTICA<br>> > >> and SE.Practicas = 'Sector' order by SE.FECHAPRACTICA desc<br>> > >> ) as Sector<br>> > >> from<br>> > >> VW_HISTORIASCLINICAS R<br>> > >> where<br>> > >> R.Practicas = 'Recepción internacion') x<br>> > >> where x.egreso is null<br>> > >><br>> > ><br>> > ><br>> > > _______________________________________________<br>> > > Lazarus-es mailing list<br>> > > Lazarus-es@lists.lazarus.freepascal.org<br>> > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<br>> > ><br>> > ><br>> > ><br>> > > _______________________________________________<br>> > > Lazarus-es mailing list<br>> > > Lazarus-es@lists.lazarus.freepascal.org<br>> > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<br>> ><br>> ><br>> ><br>><br>><br>><br>> --<br>> Este mensaje le ha llegado mediante el servicio de correo electronico que<br>> ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema<br>> Nacional de Salud. La persona que envia este correo asume el compromiso de<br>> usar el servicio a tales fines y cumplir con las regulaciones establecidas<br>><br>> Infomed: http://www.sld.cu/<br>><br>><br>> _______________________________________________<br>> Lazarus-es mailing list<br>> Lazarus-es@lists.lazarus.freepascal.org<br>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<br>><br>><br>><br>> _______________________________________________<br>> Lazarus-es mailing list<br>> Lazarus-es@lists.lazarus.freepascal.org<br>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<br><br><br><br>--<br>Este mensaje le ha llegado mediante el servicio de correo electronico que <br>ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema <br>Nacional de Salud. La persona que envia este correo asume el compromiso de <br>usar el servicio a tales fines y cumplir con las regulaciones establecidas<br><br>Infomed: http://www.sld.cu/<br><br><br>_______________________________________________<br>Lazarus-es mailing list<br>Lazarus-es@lists.lazarus.freepascal.org<br>http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<br><br><br><br>_______________________________________________<br>Lazarus-es mailing list<br>Lazarus-es@lists.lazarus.freepascal.org<br>http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<br></body></html>