SQL Server - consulta

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 11 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

consulta

Publicado por javier (2 intervenciones) el 24/05/2021 20:01:44
Que tal

Estoy atorado con una consulta, ojala me puedan echar una mano

Estoy trabajando con dos tablas, una guarda los datos personales "Socios" y la otra guarda los cambios del estatus del socio (activo, suspendido, baja) "CambioEstatus"

Manejando el ejemplo de que un socio puede estar hoy como activo, mañana suspendido y pasado puede regresar a estar activo, necesito realizar una consulta donde me muestre los datos personales mas su estatus actual

Ahorita tengo lo siguiente

1
2
3
select a.Id_Socio, a.Nombres, a.ApPaterno, a.ApMaterno, a.TelFijo, a.TelCel, a.Email1, a.Domicilio1, b.Estatus, max(b.FechaCambio) as fecha
from Socios a, CambioEstatusS b where a.Id_Socio = b.Id_Socio
group by a.Id_Socio, a.Nombres, a.ApPaterno, a.ApMaterno, a.TelFijo, a.TelCel, a.Email1, a.Domicilio1, b.Estatus

El detalle es q cuando agrego la columna Estatus, me muestra todos los registros que el socio a tenido, duplicándome los datos, me gustaría q solo muestre el mas reciente

Sin-titulo-2

Agradezco su apoyo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 6
Ha aumentado su posición en 11 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

consulta

Publicado por javier (2 intervenciones) el 25/05/2021 17:10:13
Agradezco tu ayuda !!!!

Realice la consulta con el max en el Id del Estatus y funciona bien, el problema vuelve a reflejarse cuando añado la columna del concepto del Estatus, incluso realice otra tabla separando los registros que vinculan conceptos con los registros de estatus de socios, te comparto lo que tengo

1
2
3
select  a.Id_Socio, Nombres, max(b.Id_Estatus) as estatus, max(b.FechaCambio) as fecha, c.Estatus
from Socios a inner join CambioEstatusS b on a.Id_socio = b.Id_Socio inner join EstatusS c on b.Id_Estatus = c.Id_Estatus
group by a.Id_Socio, Nombres, c.Estatus

Sin-titulo-1

ojala me puedas seguir ayudando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

consulta

Publicado por Isaias (4558 intervenciones) el 26/05/2021 17:13:14
Solo debes colocar el MAX de la fecha, si pones el ID, por eso te "duplica" el dato
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar