SQL - CREAR NÚMERO DE LINEA

   
Vista:

CREAR NÚMERO DE LINEA

Publicado por OSCAR (2 intervenciones) el 06/05/2016 08:55:20
Hola a todos y muchas gracias por leer mi problema.

El tema está en que tengo una tabla que cuelga de otra, es decir, la TABLA1 sería la cabecera y la TABLA2 serían las líneas de la cabecera. Previamente estas tablas tenían una relación 1 a 1, pero he tenido que aportar cambios de manera que ahora es de 1 a n, y se han ido entrando registros.

ejemplo:

Tengo la TABLA1 con los campos xempresa_id, xruta_id, xfase_id, xoperacion_id
Tengo la TABLA2 con los campos xempresa_id, xruta_id, xfase_id, xoperacion_id, xproveedor_id,

de modo que los datos que tengo en cada una de las tablas es:
TABLA1:
'XXX', 'YAV', '10', '3001' (sería la línea 1 de la cabecera)
'XXX', 'YAV', '13', '3015' (sería la línea 2 de la cabecera)

TABLA2:
'XXX', 'YAV', '10', '3001', 'ES5995' (seria la línea 1 de la cabecera 1)
'XXX', 'YAV', '10', 3001', 'CH0001' (sería la línea 2 de la cabecera 1)
'XXX', 'YAV', '13', '3015', 'ES1051' (sería la línea 1 de la cabecera 2)
'XXX', 'YAV', '13', '3015', 'ES5468' (sería la línea 2 de la cabecera 2)

El problema que me ha surgido ahora es que he creado el campo xnum_linea en la TABLA2 y quiero hacer un update para rellenarlo con el número de cada línea, teniendo en cuenta que es autoincrementable y que tiene que volver a empezar cuando cambien los valores (xempresa_id, xruta_id, xfase_id)... ¿alguna idea de como puedo hacerlo?

Espero haberme explicado con suficiente claridad.

Saludos y muchas gracias de antemano.
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
Imágen de perfil de Isaias

CREAR NÚMERO DE LINEA

Publicado por Isaias (690 intervenciones) el 06/05/2016 17:42:55
Primero dinos que MOTOR DE BASE DE DATOS ocupas

Pues todo dependera de como estas ingresando los DETALLES del CABECERO.

Es de UNO x UNO
Son todos de un jalon

¿Como?
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
Imágen de perfil de Jordi

CREAR NÚMERO DE LINEA

Publicado por Jordi (10 intervenciones) el 06/05/2016 17:55:10
Hola Óscar,

Si no estás utilizando MySQL puedes usar window functions. Estas window functions permiten contar números de fila por grupos según un criterio, tal y como estás planteando.

Imagina que quieres hacer grupos por col_grupo y ordenarlos en cada grupo por col_id. En tal caso:

1
2
3
4
5
select
col1,
col2,
row_number() over(partition by col_grupo order by col_id) as num_fila
from tabla;
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

CREAR NÚMERO DE LINEA

Publicado por OSCAR (2 intervenciones) el 18/05/2016 09:05:59
Hola Jordi, muchas gracias!! Me fue genial tu respuesta! Exactamente lo que buscaba!!! Mil gracias otra vez!
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