Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Select anidado: Select from (select....) (https://www.clubdelphi.com/foros/showthread.php?t=14936)

Malon 05-10-2004 15:26:33

Select anidado: Select from (select....)
 
Hola.
Hago la consulta es este foro y en el de Interbase/firebird porque no se bien donde va.

Tengo una consulta de este tipo:

SELECT V.Nivel , Sum(V.CanNuevos) as CantNue, Sum(V.CanBajas) as CantBaj
FROM [Select count(*) as CanNuevos, Sum(0) as CanBajas, Nivel
From Alumnos
Where Ano_Ingreso=:nA1
Group by Nivel
union
Select Sum(0) as CanNuevos, count(*) as CanBajas, Nivel
From Alumnos
Where Ano_Baja=:nA2
Group by Nivel]. as V
GROUP BY V.Nivel
ORDER BY V.Nivel

El select de union daria un resultado mas o menos asi:

Nivel CantNue CantBaj
-------------------------
1 10 0
1 0 20
2 15 0
2 0 35


Y lo que yo necesito es poder agruparlo por nivel:

Nivel CantNue CantBaj
-------------------------
1 10 20
2 15 35


Esto en Acces funciona y creo que en SQLServer tambien, pero en Firebird no.
Se podria resolver utilizando un vista para Select de union:

SELECT V.Nivel , Sum(V.CanNuevos) as CantNue, Sum(V.CanBajas) as CantBaj
FROM Vista_Union as V
GROUP BY V.Nivel
ORDER BY V.Nivel

pero necesito mandarle parametros.

Alguien puede ayudarme ?????

gmontes 12-10-2004 19:02:35

prueba con esto

SELECT V.Nivel , Sum(V.CanNuevos) , Sum(V.CanBajas)
FROM Vista_Union as V
GROUP BY V.Nivel, V.CanNuevos, V.CanBajas

en firebird

Malon 14-10-2004 15:01:24

Gracias gmontes, pero eso es lo que yo hice. No me sirve porque a la consulta interna ( por llamarla de alguna manera ) necesito pasarle parametros y a las Vistas no se les puede pasar parametros.
Gracias igual


La franja horaria es GMT +2. Ahora son las 14:30:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi