SQL Server - Identificar Códigos Iguales

 
Vista:

Identificar Códigos Iguales

Publicado por Tania (1 intervención) el 27/03/2007 18:00:43
Hola

Podrían ayudarme, tengo una tabla que se encuentra formada por varios campos entre ellos, un campo llamado nro_contrato que es un varchar(15), en este campo guardo un codigo de contrato pero en la base existen codigos repetidos aunque el resto de campos no lo son, ahora necesito idenficar estós códigos repetidos.

Trate de hacerle en un stored procedure en donde primero tengo los codigos de contrato q sean unicos y luego quiero usar un cursor para actualizar las veces q se repite ese código
pero se me presentan estos errores

Server: Msg 156, Level 15, State 1, Procedure sp_compara, Line 31
Incorrect syntax near the keyword 'select'.
Server: Msg 156, Level 15, State 1, Procedure sp_compara, Line 70
Incorrect syntax near the keyword 'cursor'.

Este es el código del stored procedure que hice

use sistematizacion
go
if exists (select * from sysobjects where name = 'sp_compara')
drop proc sp_compara
go
create proc sp_compara(
@i_fecha_fin datetime=null
)
as
Declare @w_sp_name varchar(25),
@w_sec int,
@w_nro_contrato varchar(30),
@w_veces int

select @w_sp_name = 'sp_compara',
@w_veces = 0

--Tabla en donde almaceno los datos de codigo
create table Compara_Datos(
cd_nro_contrato varchar(30) null,
cd_veces int null )

insert into Compara_Datos(cd_nro_contrato,cd_veces)
select distinct(sis_nro_contrato),0
from siste_1

declare cursor_compara cursor
select cd_nro_contrato
from Compara_Datos

open cursor_compara

FETCH NEXT FROM cursor_oficina into
@w_nro_contrato

while @@fetch_status!= 2
BEGIN
if (@@fetch_status = 1)
BEGIN
goto ERROR
END

BEGIN TRAN

select @w_veces =count(*)
from siste_1
where sis_nro_contrato = @w_nro_contrato

update Compara_Datos
set cd_veces = @w_veces
where cd_nro_contrato = @w_nro_contrato

select @w_veces =0

if @@rowcount =0
begin
goto ERROR
end

COMMIT TRAN

FETCH NEXT FROM cursor_compara into
@w_nro_contrato
END

CLOSE cursor_compara
DEALLOCATE cursor cursor_compara

return 0
ERROR:
return 1
go

Si por favor me dicen q estoy haciendo mal.

Gracias
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

RE:Identificar Códigos Iguales

Publicado por luishoracio (18 intervenciones) el 27/03/2007 20:09:46
Buenas tardes,

cambia la linea select @w_sp_name = 'sp_compara',
@w_veces = 0
por

@w_sp_name = 'sp_compara',
@w_veces = 0

Cuando necesitabamos identificar los duplicados haciamos esta consulta

select sis_nro_contrato,count(sis_nro_contrato) as veces
from siste_1 group by sis_nro_contrato having count(sis_nro_contrato) >1

Espero que lo que te escribí te sirva

Hasta pronto!
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