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
 

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:

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 = @
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 similares