FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
consulta en Firebird 1.5.3
Hola gente del foro, tengo una consulta que se me cruzó y no puedo sacar un solución limpia en FB para la misma.. si alguno tiene una sugerencia se lo agradeceré:
básicamente quiero computar / filtrar sobre columnas computadas (no de la tabla sobre la que estoy consultando)
eso me imaginé no iba a funcionar sabiendo que los where y eso tienen que estar sobre columnas de la tabla base.. el problema es que repeterir la consulta donde uso las referencias a las columnas computadas (suponiendo que el optimizador que no se como funciona no se de cuenta de que está repetida) me duplicaría todo el tiempo de la consulta... también intente: select A, B, (A-B) as C from ( select (select ... {consulta compleja}) as A, (select ... {consulta compleja}) as B from XXX ) where A <> 0 or B <> 0 [/sql] pero me indica error en la línea 3, invalid token por lo que deduje que un select * from (select * ..)) no es permitido en el firebird.. de más está decir que busco una solución en sql limpia, también podria procesar el dataset resultante por código pero no es la idea.. lo otro que se me ocurre es crear un stored procedure selecteable como en
pero me no me termina de convencer.. alguna idea?? gracias!! |
#2
|
||||
|
||||
Si quieres hacer un Select donde contenga SubSelect's si se puede, pero no te funcionarìa un SubSelect con Asterisco * (Select *from....) aqui debes de indicar 1 sòlo campo ò grupos de campos por ejemplo:
[/sql] Espero haberme explicado.
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King |
#3
|
|||
|
|||
clarifico más
si entiendo lo que me indicas y desde ya gracias por tomarte la molestia en leer y responder, pero el problema creo no viene por ahi.. entiendo que un subselect debe devolver un solo campo, generalmente se usan
a) para generar un campo computado: select A, B, (select D + A where..) from X b) para generar un valor en un predicado del where: select * from X where A = (select B + C from X where...) aca lo que intento es hacer un select de otro select como en: select A, B, A - B from ( select A, B from XXX where...) where.. dejo la consulta en cuestión super simplificada
la misma me indica: Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 3, char 5. select. gracias!!! |
#4
|
|||
|
|||
termine haciendo un SPs con el select interior y hacieno select sobre el mismo.. no encontre nada mejor
salu2 |
#5
|
||||
|
||||
no huebira sido mejor
como vez?
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás... análisis de información análisis y diseño de sistemas Paoti Rios Reséndiz |
#6
|
|||
|
|||
no..
Cita:
de la página de reformas en firebird 2: "Many new additions have been made to the SQL language, including support for derived tables (SELECT ... FROM ( SELECT ... FROM)) with multiple layers of nesting and the ability to join nested sets, as defined by SQL200X." pueden chequearlo en: http://www.firebirdsql.org/index.php...d=fb20_release saludos! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Optimizar Consulta en Firebird | AGAG4 | Firebird e Interbase | 14 | 10-01-2006 02:11:30 |
Consulta con Firebird | senpiterno | Firebird e Interbase | 1 | 20-12-2004 23:57:39 |
Consulta velocidad consultas en Firebird | Luisma | Firebird e Interbase | 3 | 05-11-2004 23:14:28 |
Consulta de fechas y horas con Firebird | Jordy | Firebird e Interbase | 5 | 07-10-2004 16:51:52 |
Ambiguos consulta en firebird | fidias | Firebird e Interbase | 3 | 10-03-2004 16:07:56 |
|