ayuda con cursor

26/10/2004 - 22:18 por Andrea | Informe spam
hola a todos, soy nueva en el uso de cursores y quisiera q me ayuden, hago
un into a un temporal ,colocandole a la ultima fila cn_item el valor de 00,
el dato de esta columna lo quiero actualizar este campo sera un correlativo
de 2 digitos, pero al correl no me actualiza el campo, ayudenme porfa les
mando el trozo del script

declare @fq_item Int,
@cc_item varchar(2)

select cc_Artic, cc_unmed,sum(fq_artic) as fq_artic,Sum(fq_saldo) as
fq_saldo,
fm_largo, fm_ancho,fm_area,Sum(fq_cant) as fq_cant, '00' as cn_item
into #LDNOTGRAL
FROM LDNOTGRAL A
WHERE A.cc_docum=@cc_docum AND --'AI'
A.cc_notgral =@cc_notgral --'010011000006'
GROUP BY
cc_Artic,cc_unmed,fq_artic,fq_saldo,fm_largo,fm_ancho,fm_area,fq_cant


SELECT @fq_item= 0
DECLARE cn_item_cursor CURSOR FOR
select cn_item from #LDNOTGRAL
OPEN cn_item_cursor

FETCH NEXT FROM cn_item_cursor
WHILE @@FETCH_STATUS = 0
Begin
select @cc_item =convert(varchar(2),@fq_item + 1)
select @cc_item =replicate('0',2-DATALENGTH(@cc_item))+@cc_item

SELECT @fq_item = @fq_item + 1
UPDATE #LDNOTGRAL
SET cn_item = @cc_item
where current of cn_item_cursor
End
CLOSE cn_item_cursor
DEALLOCATE cn_item_cursor

select * from #LDNOTGRAL

Preguntas similare

Leer las respuestas

#1 Maxi
26/10/2004 - 22:53 | Informe spam
Hola, pues veamos!! primero:

ERl cursor lo vamos a sacar a un costado!!

Segundo, que cosa no te acurliza el correlativo?

Hagamos mejor otra cosa, porque no me comentas que queres hacer y no como lo
queres hacer, y vamos armando el Query correspondiente


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Andrea" escribió en el mensaje
news:%
hola a todos, soy nueva en el uso de cursores y quisiera q me ayuden, hago
un into a un temporal ,colocandole a la ultima fila cn_item el valor de


00,
el dato de esta columna lo quiero actualizar este campo sera un


correlativo
de 2 digitos, pero al correl no me actualiza el campo, ayudenme porfa les
mando el trozo del script

declare @fq_item Int,
@cc_item varchar(2)

select cc_Artic, cc_unmed,sum(fq_artic) as fq_artic,Sum(fq_saldo) as
fq_saldo,
fm_largo, fm_ancho,fm_area,Sum(fq_cant) as fq_cant, '00' as cn_item
into #LDNOTGRAL
FROM LDNOTGRAL A
WHERE A.cc_docum=@cc_docum AND --'AI'
A.cc_notgral =@cc_notgral --'010011000006'
GROUP BY
cc_Artic,cc_unmed,fq_artic,fq_saldo,fm_largo,fm_ancho,fm_area,fq_cant


SELECT @fq_item= 0
DECLARE cn_item_cursor CURSOR FOR
select cn_item from #LDNOTGRAL
OPEN cn_item_cursor

FETCH NEXT FROM cn_item_cursor
WHILE @@FETCH_STATUS = 0
Begin
select @cc_item =convert(varchar(2),@fq_item + 1)
select @cc_item =replicate('0',2-DATALENGTH(@cc_item))+@cc_item

SELECT @fq_item = @fq_item + 1
UPDATE #LDNOTGRAL
SET cn_item = @cc_item
where current of cn_item_cursor
End
CLOSE cn_item_cursor
DEALLOCATE cn_item_cursor

select * from #LDNOTGRAL








Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004
Respuesta Responder a este mensaje
#2 Andrea
26/10/2004 - 23:33 | Informe spam
lo que quiero hacer es lo siguiente

tengo una tabla temporal en la cual en un campo (cn_item) he guardado el
dato '00' para todas las filas
ahora deseo actualizar ese campo con un correlativo,es decir si tengo 3
filas
el dato de cn_item para la primera fila sera 01, para la segunda 02 , y para
la tercera 03
espero haberme explicado bien

espero sus respuestas gracias de antemano
"Maxi" escribió en el mensaje
news:ex$
Hola, pues veamos!! primero:

ERl cursor lo vamos a sacar a un costado!!

Segundo, que cosa no te acurliza el correlativo?

Hagamos mejor otra cosa, porque no me comentas que queres hacer y no como


lo
queres hacer, y vamos armando el Query correspondiente


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Andrea" escribió en el mensaje
news:%
> hola a todos, soy nueva en el uso de cursores y quisiera q me ayuden,


hago
> un into a un temporal ,colocandole a la ultima fila cn_item el valor de
00,
> el dato de esta columna lo quiero actualizar este campo sera un
correlativo
> de 2 digitos, pero al correl no me actualiza el campo, ayudenme porfa


les
> mando el trozo del script
>
> declare @fq_item Int,
> @cc_item varchar(2)
>
> select cc_Artic, cc_unmed,sum(fq_artic) as fq_artic,Sum(fq_saldo) as
> fq_saldo,
> fm_largo, fm_ancho,fm_area,Sum(fq_cant) as fq_cant, '00' as cn_item
> into #LDNOTGRAL
> FROM LDNOTGRAL A
> WHERE A.cc_docum=@cc_docum AND --'AI'
> A.cc_notgral =@cc_notgral --'010011000006'
> GROUP BY
> cc_Artic,cc_unmed,fq_artic,fq_saldo,fm_largo,fm_ancho,fm_area,fq_cant
>
>
> SELECT @fq_item= 0
> DECLARE cn_item_cursor CURSOR FOR
> select cn_item from #LDNOTGRAL
> OPEN cn_item_cursor
>
> FETCH NEXT FROM cn_item_cursor
> WHILE @@FETCH_STATUS = 0
> Begin
> select @cc_item =convert(varchar(2),@fq_item + 1)
> select @cc_item =replicate('0',2-DATALENGTH(@cc_item))+@cc_item
>
> SELECT @fq_item = @fq_item + 1
> UPDATE #LDNOTGRAL
> SET cn_item = @cc_item
> where current of cn_item_cursor
> End
> CLOSE cn_item_cursor
> DEALLOCATE cn_item_cursor
>
> select * from #LDNOTGRAL
>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004


Respuesta Responder a este mensaje
#3 MAXI
27/10/2004 - 00:07 | Informe spam
Hola Andrea, mira si tienes una tabla temporal lo que quieres hacer hubiere
sido tan simple como haber definido ese campo como Identity (1,1)

CREATE TABLE #TMP (CAMPO INT IDENTITY(1,1))

Esto hara solito la funcionalidad que estas buscando.

Sino te puedo recomendar que leas este link

http://www.sqlteam.com/item.asp?ItemID91

Por mas que este en ingles es super entendible y demuestra con varias
tecnicas como poder numerar los registros.

Un abrazo




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messenger:

"Andrea" escribió en el mensaje
news:
lo que quiero hacer es lo siguiente

tengo una tabla temporal en la cual en un campo (cn_item) he guardado el
dato '00' para todas las filas
ahora deseo actualizar ese campo con un correlativo,es decir si tengo 3
filas
el dato de cn_item para la primera fila sera 01, para la segunda 02 , y
para
la tercera 03
espero haberme explicado bien

espero sus respuestas gracias de antemano
"Maxi" escribió en el mensaje
news:ex$
Hola, pues veamos!! primero:

ERl cursor lo vamos a sacar a un costado!!

Segundo, que cosa no te acurliza el correlativo?

Hagamos mejor otra cosa, porque no me comentas que queres hacer y no como


lo
queres hacer, y vamos armando el Query correspondiente


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Andrea" escribió en el mensaje
news:%
> hola a todos, soy nueva en el uso de cursores y quisiera q me ayuden,


hago
> un into a un temporal ,colocandole a la ultima fila cn_item el valor de
00,
> el dato de esta columna lo quiero actualizar este campo sera un
correlativo
> de 2 digitos, pero al correl no me actualiza el campo, ayudenme porfa


les
> mando el trozo del script
>
> declare @fq_item Int,
> @cc_item varchar(2)
>
> select cc_Artic, cc_unmed,sum(fq_artic) as fq_artic,Sum(fq_saldo) as
> fq_saldo,
> fm_largo, fm_ancho,fm_area,Sum(fq_cant) as fq_cant, '00' as cn_item
> into #LDNOTGRAL
> FROM LDNOTGRAL A
> WHERE A.cc_docum=@cc_docum AND --'AI'
> A.cc_notgral =@cc_notgral --'010011000006'
> GROUP BY
> cc_Artic,cc_unmed,fq_artic,fq_saldo,fm_largo,fm_ancho,fm_area,fq_cant
>
>
> SELECT @fq_item= 0
> DECLARE cn_item_cursor CURSOR FOR
> select cn_item from #LDNOTGRAL
> OPEN cn_item_cursor
>
> FETCH NEXT FROM cn_item_cursor
> WHILE @@FETCH_STATUS = 0
> Begin
> select @cc_item =convert(varchar(2),@fq_item + 1)
> select @cc_item =replicate('0',2-DATALENGTH(@cc_item))+@cc_item
>
> SELECT @fq_item = @fq_item + 1
> UPDATE #LDNOTGRAL
> SET cn_item = @cc_item
> where current of cn_item_cursor
> End
> CLOSE cn_item_cursor
> DEALLOCATE cn_item_cursor
>
> select * from #LDNOTGRAL
>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004






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