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
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
Depends On
3Used By
No items found