SP que sume resultados

08/05/2005 - 20:22 por Alonso | Informe spam
Tengo un SP (digamos SP1) que dado un codigo me devuelve un valor.

Necesito hacer otro (SP2) que extraiga una lista de codigos de una tabla y
recorra cada codigo llamando a SP1 con ese codigo y los resultados los vaya
sumando y me los devuelva a la aplicacion. Podria hacerlo desde la
aplicacion pero me imagino que seria mas rapido desde otro sp no ?

Hay algo como un for o While en tsql ?

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
08/05/2005 - 20:49 | Informe spam
WHILE

Estudia los detalles de uso en tus Books Online (BOL).

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"Alonso" wrote in message
news:eV$Syp$
Tengo un SP (digamos SP1) que dado un codigo me devuelve un valor.

Necesito hacer otro (SP2) que extraiga una lista de codigos de una tabla y
recorra cada codigo llamando a SP1 con ese codigo y los resultados los
vaya
sumando y me los devuelva a la aplicacion. Podria hacerlo desde la
aplicacion pero me imagino que seria mas rapido desde otro sp no ?

Hay algo como un for o While en tsql ?



Respuesta Responder a este mensaje
#2 Miguel Egea
08/05/2005 - 22:35 | Informe spam
uf eso suena a cursor ¿no puede hacer un select sum? o es que el segundo sp
tiene una gran complejidad? si nos das detalles igual podemos ayudarte.


Miguel Egea
Microsoft SQL-Server MVP
http://www.portalsql.com
Brigada Anti-cursores
"Alonso" escribió en el mensaje
news:eV$Syp$
Tengo un SP (digamos SP1) que dado un codigo me devuelve un valor.

Necesito hacer otro (SP2) que extraiga una lista de codigos de una tabla y
recorra cada codigo llamando a SP1 con ese codigo y los resultados los
vaya
sumando y me los devuelva a la aplicacion. Podria hacerlo desde la
aplicacion pero me imagino que seria mas rapido desde otro sp no ?

Hay algo como un for o While en tsql ?



Respuesta Responder a este mensaje
#3 Alonso
08/05/2005 - 23:29 | Informe spam
Bueno, lo que pasa es que como ya tenia hecho el SP interior, queria
reutilizar ese codigo.

Realmente la situacion es un calculo de balances de una cuenta "padre"
basandome en los balances de sus cuentas "hijas". Para el balance de una
cuenta "hija" tengo un SP. Y para calcular el de la cuenta padre lo que
tendria que hacer es "recorrer" sus hijas e ir calculando sus balances y
acumulandolos.

Espero haberme explicado.


Gracias

"Miguel Egea" wrote in message
news:uOza$
uf eso suena a cursor ¿no puede hacer un select sum? o es que el segundo


sp
tiene una gran complejidad? si nos das detalles igual podemos ayudarte.


Miguel Egea
Microsoft SQL-Server MVP
http://www.portalsql.com
Brigada Anti-cursores
"Alonso" escribió en el mensaje
news:eV$Syp$
> Tengo un SP (digamos SP1) que dado un codigo me devuelve un valor.
>
> Necesito hacer otro (SP2) que extraiga una lista de codigos de una tabla


y
> recorra cada codigo llamando a SP1 con ese codigo y los resultados los
> vaya
> sumando y me los devuelva a la aplicacion. Podria hacerlo desde la
> aplicacion pero me imagino que seria mas rapido desde otro sp no ?
>
> Hay algo como un for o While en tsql ?
>
>
>


Respuesta Responder a este mensaje
#4 Miguel Egea
09/05/2005 - 13:12 | Informe spam
eso se puede hacer algo así
si las cuentas son

4
40
400
4000
etc
en estos cuatro niveles con cuatro unions
select left(cuenta,1),sum(debe),sum(haber) from Asientos group by
left(cuenta,1)
union all
select left(cuenta,2),sum(debe),sum(haber) from Asientos group by
left(cuenta,2)
union all
select left(cuenta,3),sum(debe),sum(haber) from Asientos group by
left(cuenta,3)
union all
select left(cuenta,4),sum(debe),sum(haber) from Asientos group by
left(cuenta,4)

esto si lo quieres a niveles fijos, si tienes otra tabla en donde tienes
las cuentas específicamente creadas puede hacerse también, el tema es hacer
un join con un like

cuentas inner join asientos on asientos.cuenta like cuenta.cuenta+'%'

Saludos
Miguel Egea


"Alonso" escribió en el mensaje
news:
Bueno, lo que pasa es que como ya tenia hecho el SP interior, queria
reutilizar ese codigo.

Realmente la situacion es un calculo de balances de una cuenta "padre"
basandome en los balances de sus cuentas "hijas". Para el balance de una
cuenta "hija" tengo un SP. Y para calcular el de la cuenta padre lo que
tendria que hacer es "recorrer" sus hijas e ir calculando sus balances y
acumulandolos.

Espero haberme explicado.


Gracias

"Miguel Egea" wrote in message
news:uOza$
uf eso suena a cursor ¿no puede hacer un select sum? o es que el segundo


sp
tiene una gran complejidad? si nos das detalles igual podemos ayudarte.


Miguel Egea
Microsoft SQL-Server MVP
http://www.portalsql.com
Brigada Anti-cursores
"Alonso" escribió en el mensaje
news:eV$Syp$
> Tengo un SP (digamos SP1) que dado un codigo me devuelve un valor.
>
> Necesito hacer otro (SP2) que extraiga una lista de codigos de una
> tabla


y
> recorra cada codigo llamando a SP1 con ese codigo y los resultados los
> vaya
> sumando y me los devuelva a la aplicacion. Podria hacerlo desde la
> aplicacion pero me imagino que seria mas rapido desde otro sp no ?
>
> Hay algo como un for o While en tsql ?
>
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida