Actualizacion de datos

30/06/2005 - 15:56 por Julio Cesar | Informe spam
Tengo este Stored pero me presenta error al ejecutarlo, me puede alguien
colaborar si lo que quiero hacer esta bien hecho o como lo pudiese hacer?
Gracias

CREATE PROCEDURE [consecutivos_reebolsos] AS
SELECT CODMONEDA, CODCOMPROB, DCTO
FROM MVTO
WHERE (DCTO >= '79621') AND (DCTO <= '79855')
DECLARE @var1 varchar (5);
SET @var1 = '79621'

for i = 72621 to 72855
repla all dcto with i for dcto = var1
var1 = var1 + 1
end for

GO

Preguntas similare

Leer las respuestas

#6 Julio Cesar
30/06/2005 - 17:39 | Informe spam
El tipo de dato es char

"Eleazar" escribió:

Hola primero cual es el mensaje del error
segundo para hacer un bucle que yo sepa la sentencia es while ,
que tipo de dato es el campo DCTO ?

"Julio Cesar" <Julio escribió en el mensaje
news:
> Tengo este Stored pero me presenta error al ejecutarlo, me puede alguien
> colaborar si lo que quiero hacer esta bien hecho o como lo pudiese hacer?
> Gracias
>
> CREATE PROCEDURE [consecutivos_reebolsos] AS
> SELECT CODMONEDA, CODCOMPROB, DCTO
> FROM MVTO
> WHERE (DCTO >= '79621') AND (DCTO <= '79855')
> DECLARE @var1 varchar (5);
> SET @var1 = '79621'
>
> for i = 72621 to 72855
> repla all dcto with i for dcto = var1
> var1 = var1 + 1
> end for
>
> GO
>



Respuesta Responder a este mensaje
#7 Eleazar
30/06/2005 - 17:41 | Informe spam
Hola
antes de actualizar cualquier dato cerciorate que el query este correcto
(condicion para saber cuales registros deben ser actualizados),
primero checa estos resultados:
SELECT CODMONEDA, CODCOMPROB, DCTO, NUEVODCTO = Convert(int,DCTO)- 7000
FROM MVTO
WHERE DCTO BETWEEN '79621'AND '79855'

si es lo que estas buscando, esta seria la sentencia para actualizar
UPDATE MVTO
SET DCTO = Convert(int,DCTO)- 7000
WHERE DCTO BETWEEN '79621'AND '79855'

SUERTE
"Julio Cesar" <Julio escribió en el mensaje
news:
Lo que sucede es que tengo que cambiar el consecutivo 79621 por 72621 asi
hasta el ultimo numero que se incluyo (79900)

"Miguel K." escribió:

> Tienes instrucciones de FoxPro en ese Store procedure y no te va a
> funcionar. Lo que debes hacer es utilizar un update con una condicion,


pero
> debes ser más explícito en lo que quieres porque no le encuentro el


sentido.
>
>
>
> "Julio Cesar" <Julio wrote in message
> news:
> > Tengo este Stored pero me presenta error al ejecutarlo, me puede


alguien
> > colaborar si lo que quiero hacer esta bien hecho o como lo pudiese


hacer?
> > Gracias
> >
> > CREATE PROCEDURE [consecutivos_reebolsos] AS
> > SELECT CODMONEDA, CODCOMPROB, DCTO
> > FROM MVTO
> > WHERE (DCTO >= '79621') AND (DCTO <= '79855')
> > DECLARE @var1 varchar (5);
> > SET @var1 = '79621'
> >
> > for i = 72621 to 72855
> > repla all dcto with i for dcto = var1
> > var1 = var1 + 1
> > end for
> >
> > GO
> >
>
>
>
Respuesta Responder a este mensaje
#8 Miguel K.
30/06/2005 - 17:52 | Informe spam
Tienes razón me faltó esto:

UPDATE MVTO SET DCTO = CAST((CAST(DCTO as int) - 7000) AS char(5))
WHERE (DCTO >= '79621') AND (DCTO <= '79900')


"Julio Cesar" wrote in message
news:
No lo puedo realizar debido a que dcto es de tipo char

"Miguel K." escribió:

> Fíjate si esto es lo que quieres:
>
> UPDATE MVTO SET DCTO = DCTO - 7000
> WHERE (DCTO >= '79621') AND (DCTO <= '79900')
>
>
> "Julio Cesar" <Julio wrote in message
> news:
> > Lo que sucede es que tengo que cambiar el consecutivo 79621 por 72621


asi
> > hasta el ultimo numero que se incluyo (79900)
> >
> > "Miguel K." escribió:
> >
> > > Tienes instrucciones de FoxPro en ese Store procedure y no te va a
> > > funcionar. Lo que debes hacer es utilizar un update con una


condicion,
> pero
> > > debes ser más explícito en lo que quieres porque no le encuentro el
> sentido.
> > >
> > >
> > >
> > > "Julio Cesar" <Julio wrote in


message
> > > news:
> > > > Tengo este Stored pero me presenta error al ejecutarlo, me puede
> alguien
> > > > colaborar si lo que quiero hacer esta bien hecho o como lo pudiese
> hacer?
> > > > Gracias
> > > >
> > > > CREATE PROCEDURE [consecutivos_reebolsos] AS
> > > > SELECT CODMONEDA, CODCOMPROB, DCTO
> > > > FROM MVTO
> > > > WHERE (DCTO >= '79621') AND (DCTO <= '79855')
> > > > DECLARE @var1 varchar (5);
> > > > SET @var1 = '79621'
> > > >
> > > > for i = 72621 to 72855
> > > > repla all dcto with i for dcto = var1
> > > > var1 = var1 + 1
> > > > end for
> > > >
> > > > GO
> > > >
> > >
> > >
> > >
>
>
>
Respuesta Responder a este mensaje
#9 Julio Cesar
30/06/2005 - 18:46 | Informe spam
Hola, me ayudo esta instruccion pero cometi un error y me gustaria saber si
puedo repararlo. En tres consecutivos no los puede arreglar debido a que el
campo estaba asi 79745-1, 79773-1 y 79790-1 entonces hice lo siguiente
realice un select count(*) FROM MVTO
WHERE DCTO BETWEEN '79621'AND '79855' y me dio un resultado de 142 registros
entonces me parecio facil y relice la siguiente instruccion
UPDATE MVTO
SET DCTO = 79745
WHERE (DCTO >= '72745')
para remplazar los 79745 por 72745 y los que estaban con 79475-1 los
corregia a mano, pero entonces el resultado de update me dio de 22000
registros (o algo parecido) entonces al ver este resultado pues realice lo
siguiente
UPDATE MVTO
SET DCTO = 72745
WHERE (DCTO >= '79745')
para ver si me reversaba lo que habia hecho, pero ya no veo el 79475-1 ni el
72745-1 hay alguna manera de restablecer lo anterior? Gracias


"Eleazar" escribió:

Hola
antes de actualizar cualquier dato cerciorate que el query este correcto
(condicion para saber cuales registros deben ser actualizados),
primero checa estos resultados:
SELECT CODMONEDA, CODCOMPROB, DCTO, NUEVODCTO = Convert(int,DCTO)- 7000
FROM MVTO
WHERE DCTO BETWEEN '79621'AND '79855'

si es lo que estas buscando, esta seria la sentencia para actualizar
UPDATE MVTO
SET DCTO = Convert(int,DCTO)- 7000
WHERE DCTO BETWEEN '79621'AND '79855'

SUERTE
"Julio Cesar" <Julio escribió en el mensaje
news:
> Lo que sucede es que tengo que cambiar el consecutivo 79621 por 72621 asi
> hasta el ultimo numero que se incluyo (79900)
>
> "Miguel K." escribió:
>
> > Tienes instrucciones de FoxPro en ese Store procedure y no te va a
> > funcionar. Lo que debes hacer es utilizar un update con una condicion,
pero
> > debes ser más explícito en lo que quieres porque no le encuentro el
sentido.
> >
> >
> >
> > "Julio Cesar" <Julio wrote in message
> > news:
> > > Tengo este Stored pero me presenta error al ejecutarlo, me puede
alguien
> > > colaborar si lo que quiero hacer esta bien hecho o como lo pudiese
hacer?
> > > Gracias
> > >
> > > CREATE PROCEDURE [consecutivos_reebolsos] AS
> > > SELECT CODMONEDA, CODCOMPROB, DCTO
> > > FROM MVTO
> > > WHERE (DCTO >= '79621') AND (DCTO <= '79855')
> > > DECLARE @var1 varchar (5);
> > > SET @var1 = '79621'
> > >
> > > for i = 72621 to 72855
> > > repla all dcto with i for dcto = var1
> > > var1 = var1 + 1
> > > end for
> > >
> > > GO
> > >
> >
> >
> >



Respuesta Responder a este mensaje
#10 Eleazar
01/07/2005 - 03:15 | Informe spam
En serio !!
hiciste eso mmm
pues recuerdo que habia un post sobre como recuperar informacion busca los
post de la semana pasada y ten cuidado te repito antes de correr el update
primero ejecuta un select con las mismas condiciones
SUERTE

"Julio Cesar" escribió en el mensaje
news:
Hola, me ayudo esta instruccion pero cometi un error y me gustaria saber


si
puedo repararlo. En tres consecutivos no los puede arreglar debido a que


el
campo estaba asi 79745-1, 79773-1 y 79790-1 entonces hice lo siguiente
realice un select count(*) FROM MVTO
WHERE DCTO BETWEEN '79621'AND '79855' y me dio un resultado de 142


registros
entonces me parecio facil y relice la siguiente instruccion
UPDATE MVTO
SET DCTO = 79745
WHERE (DCTO >= '72745')
para remplazar los 79745 por 72745 y los que estaban con 79475-1 los
corregia a mano, pero entonces el resultado de update me dio de 22000
registros (o algo parecido) entonces al ver este resultado pues realice lo
siguiente
UPDATE MVTO
SET DCTO = 72745
WHERE (DCTO >= '79745')
para ver si me reversaba lo que habia hecho, pero ya no veo el 79475-1 ni


el
72745-1 hay alguna manera de restablecer lo anterior? Gracias


"Eleazar" escribió:

> Hola
> antes de actualizar cualquier dato cerciorate que el query este correcto
> (condicion para saber cuales registros deben ser actualizados),
> primero checa estos resultados:
> SELECT CODMONEDA, CODCOMPROB, DCTO, NUEVODCTO = Convert(int,DCTO)-


7000
> FROM MVTO
> WHERE DCTO BETWEEN '79621'AND '79855'
>
> si es lo que estas buscando, esta seria la sentencia para actualizar
> UPDATE MVTO
> SET DCTO = Convert(int,DCTO)- 7000
> WHERE DCTO BETWEEN '79621'AND '79855'
>
> SUERTE
> "Julio Cesar" <Julio escribió en el


mensaje
> news:
> > Lo que sucede es que tengo que cambiar el consecutivo 79621 por 72621


asi
> > hasta el ultimo numero que se incluyo (79900)
> >
> > "Miguel K." escribió:
> >
> > > Tienes instrucciones de FoxPro en ese Store procedure y no te va a
> > > funcionar. Lo que debes hacer es utilizar un update con una


condicion,
> pero
> > > debes ser más explícito en lo que quieres porque no le encuentro el
> sentido.
> > >
> > >
> > >
> > > "Julio Cesar" <Julio wrote in


message
> > > news:
> > > > Tengo este Stored pero me presenta error al ejecutarlo, me puede
> alguien
> > > > colaborar si lo que quiero hacer esta bien hecho o como lo pudiese
> hacer?
> > > > Gracias
> > > >
> > > > CREATE PROCEDURE [consecutivos_reebolsos] AS
> > > > SELECT CODMONEDA, CODCOMPROB, DCTO
> > > > FROM MVTO
> > > > WHERE (DCTO >= '79621') AND (DCTO <= '79855')
> > > > DECLARE @var1 varchar (5);
> > > > SET @var1 = '79621'
> > > >
> > > > for i = 72621 to 72855
> > > > repla all dcto with i for dcto = var1
> > > > var1 = var1 + 1
> > > > end for
> > > >
> > > > GO
> > > >
> > >
> > >
> > >
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida