Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/12/2015, 12:14
marc85
 
Fecha de Ingreso: octubre-2014
Mensajes: 20
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Copiar registros que no estén repetidos a una tabla

ok, estos son los campos
idpac,idexp,idinss,iden,idriesgo,idcedula,codcat,c odpro,nombres,apellidos,fecnac,codestciv,codsexo,l ugnac,fecapertura,codsit,fecsit,codmil,edad,estado ,codedad,idpamor,asegurado,sucursal

el campo que lo diferencia es idexp, yo hice esta query pero no me recorre todos los registros
Código SQL:
Ver original
  1. DECLARE @pac AS INT
  2. DECLARE @EXP AS VARCHAR(50)
  3. DECLARE @inss AS VARCHAR(50)
  4. DECLARE @en AS VARCHAR(50)
  5. DECLARE @riesgo AS VARCHAR(50)
  6. DECLARE @cedula AS VARCHAR(50)
  7. DECLARE @cat AS INT
  8. DECLARE @pro AS INT
  9. DECLARE @nombres AS VARCHAR(100)
  10. DECLARE @apellidos AS VARCHAR(100)
  11. DECLARE @fecnacimiento AS datetime
  12. DECLARE @estadocivil AS INT
  13. DECLARE @sexo AS INT
  14. DECLARE @lugnacimiento AS VARCHAR(100)
  15. DECLARE @fecapertura AS datetime
  16. DECLARE @sit AS INT
  17. DECLARE @fecsit AS datetime
  18. DECLARE @mil AS INT
  19. DECLARE @edad AS INT
  20. DECLARE @estado AS INT
  21. DECLARE @codedad AS VARCHAR(50)
  22. DECLARE @pamor AS VARCHAR(50)
  23. DECLARE @asegurado AS INT
  24. DECLARE @sucursal AS INT
  25. DECLARE @cod AS VARCHAR(50)
  26. DECLARE NEWESTU CURSOR FOR
  27. -------------------------------------------------------------------------------------------------------------------------------------------------------------------
  28. SELECT * FROM PacientesA WHERE idexp LIKE '5%'
  29. SET @cod=idexp
  30. -------------------------------------------------------------------------------------------------------------------------------------------------------------------
  31. OPEN NEWESTU
  32. FETCH NEXT FROM NEWESTU INTO @pac,@EXP,@inss,@en,@riesgo,@cedula,@cat,@pro,@nombres,@apellidos,@fecnacimiento,@estadocivil,@sexo,@lugnacimiento,@fecapertura,@sit,@fecsit,@mil,@edad,@estado,@codedad,@pamor,@asegurado,@sucursal
  33. WHILE @@FETCH_STATUS = 0
  34. BEGIN
  35.  
  36.     IF EXISTS ( SELECT * FROM PacientesA WHERE idexp=@cod)
  37.         UPDATE  PacientesA   SET idpac=@pac,idexp=@EXP,idinss=@inss,iden=@en,idriesgo=@riesgo,idcedula=@cedula,codcat=@cat,codpro=@pro,nombres=@nombres,apellidos=@apellidos,fecnac=@fecnacimiento,codestciv=@estadocivil,codsexo=@sexo,lugnac=@lugnacimiento,fecapertura=@fecapertura,codsit=@sit,fecsit=@fecsit,codmil=@mil,edad=@edad,estado=@estado,codedad=@codedad,idpamor=@pamor,asegurado=@asegurado,sucursal=@sucursal
  38.     ELSE
  39.         INSERT  INTO PacientesA ( idpac,idexp,idinss,iden,idriesgo,idcedula,codcat,codpro,nombres,apellidos,fecnac,codestciv,codsexo,lugnac,fecapertura,codsit,fecsit,codmil,edad,estado,codedad,idpamor,asegurado,sucursal)
  40.         VALUES  ( @pac,@EXP,@inss,@en,@riesgo,@cedula,@cat,@pro,@nombres,@apellidos,@fecnacimiento,@estadocivil,@sexo,@lugnacimiento,@fecapertura,@sit,@fecsit,@mil,@edad,@estado,@codedad,@pamor,@asegurado,@sucursal )
  41.     FETCH NEXT FROM NEWESTU INTO @pac,@EXP,@inss,@en,@riesgo,@cedula,@cat,@pro,@nombres,@apellidos,@fecnacimiento,@estadocivil,@sexo,@lugnacimiento,@fecapertura,@sit,@fecsit,@mil,@edad,@estado,@codedad,@pamor,@asegurado,@sucursal
  42. END
  43. CLOSE NEWESTU
  44. DEALLOCATE NEWESTU

Última edición por gnzsoloyo; 15/12/2015 a las 12:46 Razón: Codigo SQL sin etiquetar...