dbo.Proceso_Padron_electoral_paso3

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [Proceso_Padron_electoral_paso3] 
*/

CREATE OR ALTER PROCEDURE dbo.Proceso_Padron_electoral_paso3 
-- Los que sacando acentos, el nombre_persona de padron comienza con el apellido
AS
BEGIN
 SET NOCOUNT ON;

 declare @id_padron int = null,
   @sexo varchar(1) = null,
   @apellidos varchar(500) = null,
   @nombres varchar(500) = null,
   @nombre_encontrado varchar(200) = null, 
   @procesados int = 0, 
   @nombre_anterior varchar(200) = null, 
   @nombre_actual   varchar(200) = null
   
 DECLARE X_cursor CURSOR FOR
   select padron_procesado.id_padron, padron_procesado.sexo, padron_procesado.apellidos, padron_procesado.nombres, 
     padrones.nombre_persona 
     from padron_procesado 
     left join padrones on (padrones.id_padron = padron_procesado.id_padron and isnull(padron_procesado.id_padron,0) != 0)
        where procesado = 1 and nombre_persona_anterior_en_padron is null 
     and (isnull(padrones.modificado_por,'') != 'R' or padrones.fecha_modificado_por = '2024-10-01 00:00:00')

 OPEN X_cursor
 FETCH NEXT FROM X_cursor INTO @id_padron, @sexo, @apellidos, @nombres, @nombre_encontrado
 WHILE @@fetch_status = 0
 BEGIN 

  select @id_padron

  set @nombre_anterior   = @nombre_encontrado
  set @nombre_encontrado = dbo.elimina_acentos(@nombre_encontrado)
  set @apellidos         = dbo.elimina_acentos(@apellidos)
  set @nombres           = dbo.elimina_acentos(@nombres)
  set @nombre_actual     = @apellidos + ' ' + @nombres
  if (@nombre_encontrado like @nombre_actual + '%')
      set @nombre_actual = @nombre_encontrado

  if (@nombre_actual != @nombre_anterior)
  begin
   update padrones 
    set nombre_persona = @nombre_actual
     where id_padron = @id_padron
  end

  update padron_procesado 
     set nombre_persona_anterior_en_padron = @nombre_anterior,  
         nombre_persona_ahora_en_padron = @nombre_actual 
   where id_padron = @id_padron 

  set @procesados = @procesados + 1

  FETCH NEXT FROM X_cursor INTO @id_padron, @sexo, @apellidos, @nombres, @nombre_encontrado
 END
 CLOSE X_cursor
 DEALLOCATE X_cursor
 select @procesados as procesados
END 

/*
select * from padron_procesado 
left join padrones on (padrones.id_padron = padron_procesado.id_padron and isnull(padron_procesado.id_padron,0) != 0)
where detalle = '- nombre_persona no comienza con ese apellido' and procesado = 0
and dbo.elimina_acentos(padrones.nombre_persona) like dbo.elimina_acentos(padron_procesado.apellidos) + '%'

select procesado, count(*) from padron_procesado 
group by procesado

select * from padron_procesado 
left join padrones on (padrones.id_padron = padron_procesado.id_padron and isnull(padron_procesado.id_padron,0) != 0)
where procesado = 1  and padron_procesado.id_padron = 26939500
*/


GO

Used By

No items found