Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/12/2013, 18:15
FDPolvo
 
Fecha de Ingreso: diciembre-2013
Mensajes: 8
Antigüedad: 11 años
Puntos: 0
Respuesta: Validar registros duplicados de una columna, tomando varias posiciones de

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 original
  1. DECLARE @MATCHCODE  VARCHAR(50)
  2.        
  3. -- Declaración del cursor
  4. DECLARE cMATCHCODE CURSOR FOR
  5.     SELECT DISTINCT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB
  6.         WHERE SUBSTRING(MATCHCODE,1,13) IN
  7.         (SELECT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB AS DUPLICADO_13
  8.         GROUP BY SUBSTRING(MATCHCODE,1,13) HAVING COUNT(1) > 1 )
  9.         ORDER BY SUBSTRING(MATCHCODE,1,13)
  10.     FOR UPDATE
  11.  
  12. -- Apertura del cursor
  13. OPEN cMATCHCODE
  14.  
  15. -- Lectura de la primera fila del cursor
  16.     FETCH cMATCHCODE INTO @MATCHCODE
  17.  
  18.     WHILE (@@FETCH_STATUS = 0 )
  19.  
  20.     BEGIN
  21.         UPDATE PROCESO_TAB
  22.         SET M13 = 'S'
  23.         WHERE SUBSTRING(MATCHCODE,1,13) = @MATCHCODE
  24.  
  25.         -- Lectura de la siguiente fila del cursor
  26.         FETCH cMATCHCODE INTO @MATCHCODE
  27.     END
  28.  
  29.     BEGIN
  30.         UPDATE PROCESO_TAB
  31.         SET M13 = 'N'
  32.         WHERE SUBSTRING(MATCHCODE,1,13) <> @MATCHCODE
  33.  
  34.         -- Lectura de la siguiente fila del cursor
  35.         FETCH cMATCHCODE INTO @MATCHCODE
  36.     END
  37.  
  38. -- Cierre del cursor
  39. CLOSE cMATCHCODE
  40. -- Liberar los recursos
  41. DEALLOCATE cMATCHCODE

Última edición por gnzsoloyo; 05/12/2013 a las 19:20 Razón: HE OLVIDADO AÑADIR EL CODIGO