Oracle - función o procedimiento para recalcular un consecutivo en una tabla de Oracle

 
Vista:
Imágen de perfil de Sergio
Val: 34
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

función o procedimiento para recalcular un consecutivo en una tabla de Oracle

Publicado por Sergio (8 intervenciones) el 06/11/2019 06:34:24
Hola Comunidad,
quien me puede ayudar con la creación de una función o procedimiento almacenado que me permita recalcular un consecutivo en una tabla para un año específico.

Necesito que ordene por c_emp, per, n_cont,, c_con e inicie un consecutivo (campo CONSE) desde el número 1, para el año o PER que se especifique.

la descripción de la tabla es la siguiente:
desc con_liq_terc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Nombre    Nulo     Tipo
--------- -------- ------------
C_EMP     NOT NULL VARCHAR2(2)
PER       NOT NULL VARCHAR2(6)
N_CONT    NOT NULL VARCHAR2(8)
C_CON     NOT NULL VARCHAR2(5)
T_LIQ     NOT NULL VARCHAR2(2)
N_LIQ     NOT NULL NUMBER(2)
C_AGR              VARCHAR2(2)
N_ORDEN            NUMBER(8)
ESTADO    NOT NULL VARCHAR2(1)
VALOR     NOT NULL NUMBER(14,2)
IDEN_BEN  NOT NULL VARCHAR2(12)
VAL_PAGO           NUMBER(14,2)
CONSE     NOT NULL NUMBER(8)
PER_ORDEN          VARCHAR2(6)
VERSION            NUMBER(20)
ORIGEN             VARCHAR2(1)
PREST_ENT          VARCHAR2(10)

el campo a recalcular es CONSE para los períodos que correspondan al año 2019.

Espero sus comentarios.

SERGIO D.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 837
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

función o procedimiento para recalcular un consecutivo en una tabla de Oracle

Publicado por Rafael (326 intervenciones) el 06/11/2019 11:40:05
No queda muy claro lo que quieres hacer ...

A ver un nuevo consecutivo por año ... vale.

Dices los PERIODOS y no hay campo PERIODOS...

Tu tabla tiene una llave primaria ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sergio
Val: 34
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

función o procedimiento para recalcular un consecutivo en una tabla de Oracle

Publicado por Sergio (8 intervenciones) el 06/11/2019 23:39:39
** esta es la consulta ***

select * from con_liq_terc
where c_emp='03' and per like '2019%' and rownum<51
order by c_emp, per, conse, n_cont;

C_ PER N_CONT C_CON T_ N_LIQ C_ N_ORDEN E VALOR IDEN_BEN VAL_PAGO CONSE PER_OR VERSION O PREST_ENT
-- ------ -------- ----- -- --------- -- --------- - --------- ------------ --------- --------- ------ --------- - ----------
03 201901 10824 221 Q 1 G 3956 900680610 3 0
03 201901 10999 221 Q 1 G 3956 900680610 6 0
03 201901 10999 248 Q 1 G 116500 49759542 7 0
03 201901 11000 102 Q 1 G 16015 900336004 8 0
03 201901 11000 221 Q 1 G 3128 900680610 11 0
03 201901 11003 102 Q 1 G 16015 900336004 15 0
03 201901 11003 221 Q 1 G 3956 900680610 18 0
03 201901 11007 221 Q 1 G 3956 900680610 23 0
03 201901 11008 221 Q 1 G 5796 900680610 26 0
03 201901 11008 248 Q 1 G 30000 49759542 27 0
03 201901 11009 221 Q 1 G 3220 900680610 30 0
03 201901 11042 221 Q 1 G 6900 900680610 34 0
03 201901 11158 221 Q 1 G 5474 900680610 38 0
03 201901 11158 248 Q 1 G 52500 49759542 39 0
03 201901 11293 248 Q 1 G 38335 49759542 42 0
03 201901 11300 221 Q 1 G 6210 900680610 47 0
03 201901 11300 248 Q 1 G 21665 49759542 48 0
03 201901 11408 221 Q 1 G 6210 900680610 51 0
03 201901 11492 221 Q 1 G 6900 900680610 54 0
03 201901 11002 221 Q 1 G 5474 900680610 60 0
03 201901 10044 221 Q 1 G 7636 900680610 450 0
03 201901 10047 221 Q 1 G 7452 900680610 453 0
03 201901 10050 221 Q 1 G 6210 900680610 456 0
03 201901 10051 221 Q 1 G 6210 900680610 459 0
03 201901 10053 221 Q 1 G 10304 900680610 462 0
03 201901 10069 221 Q 1 G 7176 900680610 465 0
03 201901 10085 221 Q 1 G 6670 900680610 468 0
03 201901 10088 221 Q 1 G 7176 900680610 471 0
03 201901 10089 221 Q 1 G 7176 900680610 474 0

Quiero que el campo conse se recalcule desde 1 en el mismo orden del select. por medio de un update o un procedimiento que lo haga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar