![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
#1
|
||||
|
||||
Incrementar Campo
Este procedimiento es aplicado para generar en un campo NR un valor incremental. Pero lo resultados son que siempre ve guarda en el campo el ultimo numero que consulta. Es decir hay 93 registros con ese filtro y almacena 93 en el campo NR pero para todos los registro, cuando deberia ser su incremento desde el 1 hasta el 93 en forma sucesiva. Les dejo el sp para que lo corrigan. Gracias por su atencion.
|
#2
|
||||
|
||||
Código:
select codigo_suscriptor from facturacion where codigo_suscriptor='2580' into :x_codigo_do o sea, el bucle posterior no hace nada porque sólo hay uno, el 2580.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Gracias por tu tiempo. No vemos de nuevo
![]() Es decir, el filtro lo aplico en el where del update ? o como deberia ir ? |
#4
|
||||
|
||||
Debería de ir, depende de lo que quieras hacer
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Hola.
codigo_suscriptor no es la clave primaria de esa tabla, ¿ verdad ?. Tienes que utilizar la clave primaria para identificar cada uno de los registros a actualizar. Sino ocurre lo que te está pasando ahora, que en cada pasada del bucle actualizas todos los registros afectados (y claro, al final solo queda el valor puesto en la última pasada). Es decir, supongamos que la clave primaria se llama simplemente ID_FACTURA. Entonces tu procedimiento almacenado queda : Código:
SET TERM ^ ; CREATE PROCEDURE RELLENAR AS DECLARE VARIABLE ID_FACTURA; DECLARE VARIABLE I INTEGER; begin i=1; for select ID_FACTURA from facturacion where codigo_suscriptor='2580' into :ID_FACTURA do begin i=i+1; update facturacion set nr=:i where ID_FACTURA = :ID_FACTURA; end suspend; end^ SET TERM ; ^ GRANT SELECT,UPDATE ON FACTURACION TO PROCEDURE RELLENAR; GRANT EXECUTE ON PROCEDURE RELLENAR TO SYSDBA;
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). Última edición por guillotmarc fecha: 30-04-2010 a las 19:06:56. |
#6
|
||||
|
||||
Buenos dias,
Efectivamente el codigo_suscriptor no es la clave primaria, la tabla tampoco tiene clave primaria. La idea es que el campo que vamos incrementar sucesivamente en forma ascendente es ID_FACTURA el no existe y lo vamos a crear, hay que tener en cuenta que el codigo_suscriptor se repite varias veces y necesito identificarlo en la tabla con un numero que no se repita para nadie, por eso pense en un campo autoincrementable. Gracias por tu tiempo ![]() |
#7
|
||||
|
||||
![]() ![]() |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Incrementar Un Registro | einarcito | SQL | 3 | 21-10-2008 14:13:02 |
Incrementar campo según el valor de otro | subzero | Firebird e Interbase | 3 | 06-08-2008 21:41:52 |
Incrementar en 1 un campo númerico | efelix | Conexión con bases de datos | 5 | 03-12-2007 19:36:54 |
Incrementar numeros en un campo desde delphi | dariana20 | SQL | 6 | 25-05-2006 22:40:46 |
Incrementar un campo numerio | edwin1 | OOP | 1 | 11-08-2003 21:32:01 |
![]() |
|