SQL - Correlativo de Ruptura en SQL

 
Vista:
sin imagen de perfil

Correlativo de Ruptura en SQL

Publicado por Daniel (2 intervenciones) el 29/12/2015 18:35:03
Hola,
estoy intentando realizar lo siguiente en SQL pero no lo he conseguido:


NOMBRE COD_RUPTURA
1
1
Ana 2
Gabriela 3
4
4
Jose 5
Jose 5



Necesito que sume un numero cuando el NOMBRE cambie, sino que repita el anterior.

si alguien me puede ayudar mucho se lo sabría agradecer.
Saludos.
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 Danny

Correlativo de Ruptura en SQL

Publicado por Danny (5 intervenciones) el 30/12/2015 20:26:59
No se exactamente que es lo que necesitas, pero espero que esto te de una guia:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
begin
 
IF OBJECT_ID('tempdb..##test') IS NOT NULL begin
    DROP TABLE ##test
end
CREATE TABLE ##test ( id int, nombres varchar(100));
 
declare @numero int, @nom1 varchar(10), @nom2 varchar(10)
 
set @numero = 1
 
insert into ##test 
select 1, 'A'
union
select 2, 'A'
union
select 3, 'A'
union
select 4, 'B'
union
select 5, 'B'
union
select 6, 'C'
union
select 7, 'D'
union
select 8, 'E'
union
select 9, 'E'
union
select 10, 'F'
 
declare c cursor for
select
nombres
name
from ##test a order by 1
 
open c
fetch next from c into @nom1
WHILE @@FETCH_STATUS = 0
begin
  if @nom1 <> @nom2 begin
    set @numero += 1
  end
  set @nom2 = @nom1
  print(@nom1+cast(@numero as varchar))
fetch next from c into @nom1
end
close c
deallocate c
 
end
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
sin imagen de perfil

Correlativo de Ruptura en SQL

Publicado por daniel (2 intervenciones) el 31/12/2015 03:57:38
Hola, disculpa que no fui mas explicito ya tengo algunas ideas pero no estoy seguro, te adjunte un archivo de Excel para puedas ver mejor lo que necesito

EXPLICO:
en la tabla tengo una columna llamada NOMBRE y necesito agregar otra columna con el nombre COD_RUPTURA el cual ira sumando un numero a medida que el NOMBRE valla cambiando y sea diferente. si los NOMBRE son iguales o no tiene nombre y el campo esta vacío simplemente se repite el mismo numero

muchas gracias y espero me pueda ayudar
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 Danny

Correlativo de Ruptura en SQL

Publicado por Danny (5 intervenciones) el 31/12/2015 18:26:39
Bueno, me parece que aun hace falta informacion, no se si lo haras cada vez que insertes un nuevo nombre, o si ya tienes los nombres y solamente necesitas actualizar el nuevo campo con el numero correspondiente.

Para el caso de que lo necesites hacer cada vez que insertes un nombre nuevo, necesitas hacer un trigger, puede ser algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TRIGGER despuesInsertar ON tuTabla
FOR INSERT
AS
	declare @nombreAnterior varchar(100);
	declare @numeroAnterior int;
        declare @nombre int;
 
	select @nombre=i.nombre from inserted i;
        select @numeroAnterior = numero, @nombreAnterior = nombre from tuTabla where numero = (select max(numero) from tuTabla);
        if @nombreAnterior = @nombre begin
            update tuTabla set numero = @numeroAnterior where nombre = @nombre
        else
            update tuTabla set numero = @numeroAnterior+1 where nombre = @nombre
        end
GO


En el segundo caso, puedes hacer un update utilizando el mismo bloque que te puse en el primer comentario, si tienes mas dudas o puedes aclarar mejor como debe hacerse la actualizacion de la segunda columna, con gusto te ayudo
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