Hola, gracias por responder y perdón por la mala explicación del problema que ayer la hice un poco rápido. En fin ahora una explicación mejor del problema.
Tengo que crear un módulo para un sistema en donde necesito sacar un reporte con los datos de los gastos que hacen distintos beneficiarios en un periodo determinado. Todos los gastos se sacan de una tabla llamada "Complementario" , pero necesito también sacar si el beneficiario que hizo el gasto se encuentra vigente o no. Para saber si un beneficiario está vigente o no tiene un campo llamado "Ben_vigente".
En la tabla Complementario existe un campo que se llama com_rutpaciente que es con el que se hace el join con ben_rut en la tabla Beneficiario.
El problema existió cuando me fije que un beneficiario puede estar registrado mas de una vez (Ya sea porque antes fue carga de un beneficiario titular y ahora es titular, o fue carga de un titular y luego de otro titular. etc). Para omitir de los que se repiten debo considerar el último que fue creado, el campo con el que se obtiene esa información es llamado "ben_fecha_modificado " Bueno a continuación las tablas y algunos de los campos de ellas.
Tabla Beneficiario:
BEN_ID_BENEFICIARIO, PAR_ID_PARENTESCO_MEL ,SIN_ID_SINDICATO, BEN_ID_COTIZANTE,PLN_NRO_PLAN, BEN_RUT, BEN_VIGENTE, BEN_NOMBRES, BEN_APELLIDO_PATERNO, BEN_APELLIDO_MATERNO, BEN_SEXO, BEN_ESTADO_CIVIL ...
Tabla Complementario:
CIS_AMBIENTE, CIS_TIPOATENCION, CIS_CODSUBGRUPO, CIS_PERCONTAB, CIS_PERDEVOLU, CIS_MENORCOSTO, CIS_RUTTITULAR, CIS_RUTTITULAR, CIS_DVTITULAR, CIS_RUTPACIENTE, CIS_RUTPACIENTE, CIS_RUTPACIENTE, CIS_RUTPACIENTE...
Ahora parte del procedimiento almacenado que tengo para obtener los datos:
CREATE procedure Mel_Sp_ObtenerComplementarioIsapre(
@periodoIni varchar (6),
@periodoFin varchar (6)
)
as
SELECT COMPLEMENTARIO.CIS_AMBIENTE, COMPLEMENTARIO, COMPLEMENTARIO.CIS_PERDEVOLU, COMPLEMENTARIO.CIS_RUTTITULAR,
COMPLEMENTARIO.CIS_RUTPACIENTE,
b.BEN_NOMBRES + ' ' + b.BEN_APELLIDO_PATERNO + ' ' + b.BEN_APELLIDO_MATERNO AS NOMBRE_PACIENTE_COMPLETO, COMPLEMENTARIO_ISAPRE.CIS_VALORUNITARIO,
b.ben_Vigente
FROM COMPLEMENTARIO INNER JOIN
BENEFICIARIO b ON COMPLEMENTARIO.CIS_RUTPACIENTE = b.BEN_RUT
WHERE cast (CIS_PERCONTAB as varchar) between @periodoIni AND @periodoFin
GO
Bueno solo quiero saber como dejar de los beneficiarios que están mas de una vez el que tenga fecha de modificación mayor, ya que por ejemplo con la consulta anterior, el mismo beneficiario me aparece como vigente y no vigente.
Espero haber explicado mejor,
Gracias...
F.