ayuda con cursor URGENTE

17/09/2008 - 20:07 por aaron | Informe spam
saludos foristas
miren tengo este cursor

DECLARE @factura varchar(7),@subsal float,
@cargo float,@abonofloat

DECLARE saldo_cursor scroll cursor
FOR SELECT NO_FACTURA,sum(cargo)as cargo,sum(abono) as abono
FROM ANTSALDOS
group by no_factura
order by no_factura
for update of subsaldo

OPEN saldo_cursor

WHILE @@FETCH_STATUS = 0
BEGIN
fetch next from saldo_cursor
INTO @factura,@cargo,@abono
update antsaldos
set subsaldo = @cargo-@abono
where CURRENT OF saldo_cursor

PERO ME MANDA ESTE ERROR

Warning: Null value is eliminated by an aggregate or other SET operation.
Msg 16929, Level 16, State 1, Procedure temp4, Line 27
The cursor is READ ONLY.
The statement has been terminated.
Msg 16929, Level 16, State 1, Procedure temp4, Line 27
The cursor is READ ONLY.

ESPERO PUEDAN AYUDARME
GRACIAS

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
18/09/2008 - 09:40 | Informe spam
Hola Aaron,

El problema es que estás agrupando en la consulta (N filas en 1). Sería
preferible que hicieras todo esto sin un cursor simplemente haciendo un
update de la información o utilizaras otra tabla para mantener este estado de
los saldos en vez de hacer la agrupación.

Rubén Garrigós
Solid Quality Mentors

"aaron" wrote:

Mostrar la cita
#2 aaron
18/09/2008 - 19:22 | Informe spam
entonces
esto no se puede hacer con los cursor
pues de esa forma se podria hacer un poco mejor
y la forma de hacerlo pues necesito saber el saldo de las facturas
como lo prodria hacer si la tabla tiene n Facturas con N importe en CARGO y
otro tanto en Abono

Gracias

"Rubén Garrigós" wrote:

Mostrar la cita
#3 Rubén Garrigós
18/09/2008 - 19:56 | Informe spam
Hola Aaron,

Si deseas obtener dicho valor de forma puntual podrías obtenerlo con tu
consulta simplemente añadiendo una columna que sea la diferencia entre
sum(cargo) y sum(abono).

Si deseas almacenar dicha información para consultarla muy frecuentemente te
recomendaría:
a) recalcularla periodicamente en otro lugar más apropiado (no tienes una
tabla facturas donde tenga más sentido añadir la columna?)
b)usar una vista indexada donde tengas la información ya agregada
(únicamente si hay pocos cambios en esta tabla respecto al numero de
consultas)

Rubén Garrigós
Solid Quality Mentors

"aaron" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida