Select P.per_Consecutivo,P.per_TipoId AS Tipo_documento,
REPLACE(REPLACE(REPLACE(REPLACE(P.per_Id, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Numero_Documento,
REPLACE(REPLACE(REPLACE(REPLACE(P.per_CertNacVivo, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Certifido_Nacido,
REPLACE(REPLACE(REPLACE(REPLACE(P.per_Nombre1, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '')  AS Primer_Nombre,
REPLACE(REPLACE(REPLACE(REPLACE(P.per_Nombre2, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '')  AS Segundo_Nombre,
REPLACE(REPLACE(REPLACE(REPLACE(P.per_Apellido1, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '')  AS Primer_Apellido,
REPLACE(REPLACE(REPLACE(REPLACE(P.per_Apellido2, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '')  AS Segundo_Apellido,
P.per_FechaNac AS Fecha_Nacimiento,
p.per_horaNacimiento AS Hora_Nacimiento,
DATEDIFF(YEAR,P.per_FechaNac,GETDATE()) AS Edad,
PS.pes_Peso AS Peso,
LNP.nac_pais_Id AS Pais_Nacimiento,
P.per_tipoidM AS Tipo_documento_madre,
P.per_idM AS Numero_Documento_madre,
REPLACE(REPLACE(REPLACE(CONCAT(PM.per_Nombre1,' ',PM.per_Nombre2,' ',PM.per_Apellido1,' ',PM.per_Apellido2), CHAR(9), ''), CHAR(10), ''), CHAR(13), '') AS Datos_de_la_madre,
AP.reg_Nombre AS Regimen, 
AP.ase_Id AS Codigo_Aseguradora,
REPLACE(REPLACE(REPLACE(REPLACE(AP.ase_Nombre, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Aseguradora,
REPLACE(REPLACE(REPLACE(REPLACE(DE.dep_Descripcion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Depar_Residencia,
REPLACE(REPLACE(REPLACE(REPLACE(MU.mun_Descripcion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Mun_Residencia,
REPLACE(REPLACE(REPLACE(REPLACE(UP.loc_Nombre, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Localidad,
REPLACE(REPLACE(REPLACE(REPLACE(UP.bar_Nombre, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Barrio,UP.upz_Nombre AS UPZ,
REPLACE(REPLACE(REPLACE(REPLACE(TZ.zon_Descripcion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Zona,
REPLACE(REPLACE(REPLACE(REPLACE(UP.dir_Direccion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Direccion,
REPLACE(REPLACE(REPLACE(REPLACE(UP.cor_correo, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS correo_electronico,
REPLACE(REPLACE(REPLACE(REPLACE(UP.tel_Telefono, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Telefono_1,
REPLACE(REPLACE(REPLACE(REPLACE(UP.tel_Contacto, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Telefono_2,
V.vac_Nombre AS vacuna,DO.dos_Nombre AS Dosis,
VP.vac_FechaVacuna AS Fecha_Vacuna,
vp.vac_Lote As Lote_Vacuna,
vp.vac_Fecha AS Fecha_Almacena_Vac,
VP.ins_Id AS Cod_Ins_Vacunadora,
IT.ins_Nombre AS Ins_Vacunadora,
LO.loc_Nombre AS Loc_Ins,
SRE.descripcion AS Sub_Red_Ins,
PP.pos_Descripcion AS Tipo_Vacunacion,
CASE WHEN VP.vac_actualizacion = 0 THEN 'Aplicada' ELSE 'Actualizada' END AS Estado_Vacuna,
CM.cdm_Nombre AS Condicion_Usuaria,
GP.gru_Nombre AS Grupo_Poblacional,
GR.gdr_Descripcion AS Grupo_Riesgo,
CS.cds_Descripcion AS Condicion_Salud,
P.per_EdadGestacional AS Edad_Gestacion_Persona,
VP.vac_EdadGestacional AS Edad_Gestacion_Vac_per,
SE.seg_fechaSeguimientoRsp AS Fecha_Seg_Personal,
SE.seg_FechaAlmacenamiento AS Fecha_Almacena_Seguimiento,
REPLACE(REPLACE(REPLACE(REPLACE(SE.seg_Observaciones, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Observacion_Seg
from PERSONA P LEFT join vsUbicacionPersona UP ON P.per_Consecutivo = UP.per_Consecutivo 
LEFT JOIN vsAfiliacionPersona AP ON P.per_Consecutivo = AP.per_Consecutivo
LEFT JOIN VACUNA_PERSONA VP ON P.per_Consecutivo=VP.per_Consecutivo
LEFT JOIN VACUNA V ON V.vac_Id=VP.vac_Id
LEFT JOIN DEPARTAMENTO DE ON DE.dep_Id=UP.dir_dep_Id
LEFT JOIN MUNICIPIO MU ON MU.mun_Id=UP.dir_mun_id
LEFT JOIN DOSIS DO ON DO.dos_Id=VP.dos_Id
LEFT JOIN TIPO_ZONA TZ ON TZ.zon_Id=UP.dir_zon_Id
LEFT JOIN INSTITUCION IT ON IT.ins_Id = VP.ins_Id
LEFT JOIN LOCALIDAD LO ON LO.loc_Id = IT.ins_Loc_Id
LEFT JOIN SUBRED SRE ON SRE.idSubred = IT.ins_idSubred
LEFT JOIN PERTENENCIA_POS PP ON PP.pos_id = VP.pos_id
LEFT JOIN CONDICION_MUJER CM ON CM.cdm_idCondicion=VP.cdm_idCondicion
LEFT JOIN GRUPO_POBLACIONAL GP ON GP.gru_IdGrupo=P.per_IdGrupoPoblacional
LEFT JOIN COMPLEMENTO_CUESTIONARIO CCP ON CCP.Per_Consecutivo=P.per_Consecutivo
LEFT JOIN CONDICION_DE_SALUD CS ON CS.cds_Id=CCP.Cds_ID
LEFT JOIN GRUPO_RIESGO GR ON GR.gdr_Id=P.gdr_id
LEFT JOIN PERSONA PM ON PM.per_Consecutivo=P.per_ConsecutivoMama
LEFT JOIN PESO PS ON PS.per_Consecutivo=P.per_Consecutivo AND PS.pes_Activo = 1
LEFT JOIN Lugar_Nacimiento_Persona LNP ON LNP.per_consecutivo=P.per_Consecutivo
LEFT JOIN (
	SELECT seg_per_consecutivo, MAX(seg_FechaAlmacenamiento) AS Fecha_Almacena_Seguimiento
	FROM SEGUIMIENTO
	GROUP BY seg_per_consecutivo
	) US ON US.seg_per_consecutivo=P.per_Consecutivo
LEFT JOIN SEGUIMIENTO SE ON SE.seg_per_consecutivo=P.per_Consecutivo
AND SE.seg_FechaAlmacenamiento=US.Fecha_Almacena_Seguimiento
WHERE
VP.vac_Id IN('55','56','57','58') 
--VP.vac_Id IN('58')
AND VP.vac_FechaVacuna BETWEEN CONVERT(DATETIME, '2025-11-21 00:00:00', 102) AND CONVERT(DATETIME, '2026-05-13 23:59:59', 102)
order by vp.vac_FechaVacuna