| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Julian Andres 2004 Invitado
|
Publicado: Mar 02 Nov, 2004 9:34 pm Asunto: Consultas Anidadas |
|
|
| Cómo hago una consulta anidada en Interbase?? |
|
| Volver arriba |
|
 |
Julian Andres 2004 Invitado
|
Publicado: Jue 04 Nov, 2004 5:23 pm Asunto: Me explico |
|
|
Haber, creo que no me he explicado lo suficiente.
Cómo haría yo por ejemplo esta consulta:
Select count(*) From
(Select Max(Valor) From Ventas Group By IdVenta) V
Agradezco su ayuda |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Jue 04 Nov, 2004 11:54 pm Asunto: |
|
|
Desgraciadamente esa sentencia que yo sepa todavía no se encuentra operativa en Interbase 6.0 OS ni en Firebird 1.0x ni 1.5, quizás en Interbase 6.5 o 7.x si se encuentre operativa pues no he trabajado con estos gestores.
Por ahora en la clausula FROM solo se pueden utilizar tablas, vistas o procedimientos almacenados pero no consultas.
Cuando llegue Firebird 2 si estarán soportadas ese tipo de sentencias, yo tuve algunos problemas al intentar hacer cosas similares, ya que yo venía de Oracle y ahí si que se podía, pero se puede solucionar usando vistas o bien procedimientos almacenados.
Ciao y suerte. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
Alberto Lavariega Arista Lt JG

Registrado: 22 Oct 2004Mensajes: 66Ubicación: Bahias de Huatulco, Oaxaca
|
Publicado: Mie 29 Dic, 2004 7:18 pm Asunto: |
|
|
utiliza consultas anidadas, supogo que deben funcionar, ya que SQL es mas o menos standards en los manejadores de BD
| Código: | ALGO COMO ESTO:
SELECT au_lname, au_fname
FROM authors
WHERE au_id IN
(SELECT au_id
FROM titleauthor
WHERE title_id IN
(SELECT title_id
FROM titles
WHERE type = 'popular_comp')) |
_________________ Alberto Lavariega Arista |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Mie 29 Dic, 2004 7:51 pm Asunto: |
|
|
Alberto, lo que tu dices es otra cosa, el desea seleccionar un cuantas filas devuelve cierta consulta que usa la función agregada MAX en un GROUP BY, como ves lo hace en la clausula FROM, y eso aunque está permitido en ORACLE en Interbase ni en Firebird está permitido aun.
Además tu consulta no devuelve lo que el quiere, un simple número. Se podría hacer con un Procedimiento Almacenado, que lanzará la consulta y luego consultará las tuplas que tiene y devolviera este valor.
Ciao. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
|