none
Solo quiero que muestre el primer registro de la tabla hija cuando hago inner join con dos tablas RRS feed

  • Pregunta

  • Tengo 2 tablas, casos y actividades el tema es que solo necesito la ultima actividad del cada caso, pero me lista todos, he probado con Select top 1 pero no me funciona, que prodría hacer??

    Muchas gracias le paso la sentencia

    SELECT        TOP (100) PERCENT dbo.Casos.Id_Caso, dbo.Actividades.Fecha_Actividades, dbo.Actividades.Descrip_Actividades
    FROM            dbo.Casos INNER JOIN
                             dbo.Actividades ON dbo.Casos.Id_Caso = dbo.Actividades.Id_Caso
    WHERE        (dbo.Casos.Id_Caso = 59)
    ORDER BY dbo.Actividades.Fecha_Actividades DESC

    jueves, 1 de diciembre de 2016 19:41

Respuestas

  • Anibal muchas gracias Master, te paso el ultimo retoque que me funciono correctamente, Abrazo!

    -----------------------------------------------------------------------------------------------

    SELECT C.Id_Caso, A.Fecha_Actividades, A.Descrip_Actividades
    FROM dbo.Casos C INNER JOIN dbo.Actividades A 
     ON C.Id_Caso = A.Id_Caso
     where a.Fecha_Actividades = 
     (
    SELECT max(Fecha_Actividades) 
            FROM dbo.Actividades as A2
    where c.Id_Caso=a2.Id_Caso
    )
     order by c.Id_Caso

    ---------------------------------------------------------------------------------------------------

    • Marcado como respuesta epagami viernes, 2 de diciembre de 2016 13:38
    viernes, 2 de diciembre de 2016 13:13
  • Excelente, no olvides cerrar la pregunta
    • Marcado como respuesta epagami viernes, 2 de diciembre de 2016 13:38
    viernes, 2 de diciembre de 2016 13:29

Todas las respuestas

  • Ese select con Top 1 debería funcionarte, ¿que es lo que obtienes y porque no te sirve?
    jueves, 1 de diciembre de 2016 20:40
  • Estimado Anibal, lo que necesito es obtener el primer registro de la tabla hija, osea las actividades, no de los casos, los casos deseo listar todos incluyendo la ultima actividad, tienes alguna idea de como lo puedo hacer?

    si coloco el top 1 solo me trae un caso, necesito todos los casos y la ultima actividad, estuve probando incluir un select anidado pero trae nuevamente todas las actividades y ahi no funciona el top 1 en el select anidado


    viernes, 2 de diciembre de 2016 0:32
  • Entonces creo que buscas algo así:

    SELECT C.Id_Caso, A.Fecha_Actividades, A.Descrip_Actividades
    FROM dbo.Casos C INNER JOIN dbo.Actividades A
     ON C.Id_Caso = A.Id_Caso
    WHERE A.Fecha_Actividades = (SELECT MAX(A.Fecha_Actividades)
            FROM dbo.Actividades A2
            WHERE C.Id_Caso = dA2.Id_Caso)
    ORDER BY C.Id_Caso

    Saludos

    viernes, 2 de diciembre de 2016 6:54
  • Anibal muchas gracias Master, te paso el ultimo retoque que me funciono correctamente, Abrazo!

    -----------------------------------------------------------------------------------------------

    SELECT C.Id_Caso, A.Fecha_Actividades, A.Descrip_Actividades
    FROM dbo.Casos C INNER JOIN dbo.Actividades A 
     ON C.Id_Caso = A.Id_Caso
     where a.Fecha_Actividades = 
     (
    SELECT max(Fecha_Actividades) 
            FROM dbo.Actividades as A2
    where c.Id_Caso=a2.Id_Caso
    )
     order by c.Id_Caso

    ---------------------------------------------------------------------------------------------------

    • Marcado como respuesta epagami viernes, 2 de diciembre de 2016 13:38
    viernes, 2 de diciembre de 2016 13:13
  • Excelente, no olvides cerrar la pregunta
    • Marcado como respuesta epagami viernes, 2 de diciembre de 2016 13:38
    viernes, 2 de diciembre de 2016 13:29