Que tal, si tengo una pregunta, disculpen si no se a copiado .. Error de dedo:
Es la siguiente:
Requiero de su ayuda para validar registros duplicados e insertar en la misma tabla donde se encuentran dichos registros la letra "s" si han encontrado registros duplicados y una "n" en caso contrario. Al principio tengo que validar toda la cadenas, posteriormente 13 posiciones, después 11, y por ultimo 10 posicione.
Ya lo he logrado con un cursor, pero al substraer 13 posiciones no logro que funcione correctamente, apenas estoy aprendiendo esta tecnología es por eso que estoy atorado con este detalle, espero puedan auxiliarme, añado código:
Código SQL:
Ver originalDECLARE @MATCHCODE VARCHAR(50)
-- Declaración del cursor
DECLARE cMATCHCODE CURSOR FOR
SELECT DISTINCT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB
WHERE SUBSTRING(MATCHCODE,1,13) IN
(SELECT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB AS DUPLICADO_13
GROUP BY SUBSTRING(MATCHCODE,1,13) HAVING COUNT(1) > 1 )
ORDER BY SUBSTRING(MATCHCODE,1,13)
FOR UPDATE
-- Apertura del cursor
OPEN cMATCHCODE
-- Lectura de la primera fila del cursor
FETCH cMATCHCODE INTO @MATCHCODE
WHILE (@@FETCH_STATUS = 0 )
BEGIN
UPDATE PROCESO_TAB
SET M13 = 'S'
WHERE SUBSTRING(MATCHCODE,1,13) = @MATCHCODE
-- Lectura de la siguiente fila del cursor
FETCH cMATCHCODE INTO @MATCHCODE
END
BEGIN
UPDATE PROCESO_TAB
SET M13 = 'N'
WHERE SUBSTRING(MATCHCODE,1,13) <> @MATCHCODE
-- Lectura de la siguiente fila del cursor
FETCH cMATCHCODE INTO @MATCHCODE
END
-- Cierre del cursor
CLOSE cMATCHCODE
-- Liberar los recursos
DEALLOCATE cMATCHCODE