Consulta sobre el Máximo de una Fecha

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Consulta sobre el Máximo de una Fecha

    Hola, buenas tardes.

    Por razones de complejidad y de seguridad esta consulta es bastante abstracta. No puedo poner los datos reales de la Consulta.

    Tengo construida una select de bastantes tablas que me generaban unos resultados correctos. Ahora me piden una modificación y como demora mucho la consulta me gustaría dar con la solución más eficiente.

    La estructura actual es la siguiente:

    SELECT
    NOmbre_Distintos_Campos, ID_Persona, Fecha_Registro
    FROM
    Varias Tablas
    WHERE
    Joins entre tablas
    AND
    Condiciones de los Campos

    Ejemplo de Salida

    ... Carlos García 12/12/2012
    ... Carlos García 31/12/2014
    ... Blanca Pérez 29/12/2014

    Necesito que me saliera sólo:

    ... Carlos García 31/12/2014
    ... Blanca Pérez 29/12/2014

    Ha desaparecido un registro de Carlos García con la fecha más pequeña, ya que la que necesito es la mayor de ellas (las referidas a esta persona)

    Había pensado en enlazar esta select con una sub-query donde preguntara si el ID_Persona se encuentra en una select con las mismas tablas , los mismos JOIN,s y las mismas condiciones , agrupando por ID_Persona y haciendo un HAVING MAX(TRUNC(Fecha_Proceso_Select_Sub_Query)) = TRUNC(Fecha_Proceso_Select_General))

    Me arroja buenos resultados , pero no estoy seguro de su eficiencia.

    Resumiendo:
    ¿Cual es la mejor opción para que en el caso de que me salgan varios registros de una misma ID_Persona con distintas fechas de registro SÓLO me salga un único registro que tuviera la fecha máxima de entre los varios registros que pudieran salir de esa persona?

    Perdón por el inmenso rollo y muchas gracias como siempre por vuestro tiempo.

    Feliz Navidad para todossssss
    Un saludo.

    Alfredo
    Barcelona-España
    _________________
    Visual Basic
    Videos Programacion
    Foro Programacion
    Tutoriales Programacion
    Normas del Foro

  • #2
    Re: Consulta sobre el Máximo de una Fecha

    Yo pondría la cláusula DISTINCT y ORDER BY Fecha_Registro DESC. De esa forma te tomaría sólo el caso más reciente.
    José María Movilla Cuadrado
    ______________________
    Normas del foro
    www.foro.vb-mundo.com
    www.vb-mundo.com

    Comentario


    • #3
      Re: Consulta sobre el Máximo de una Fecha

      Doc, y ¿has revisado el plan? has checado si los indices son correctos? Aplicando debidamente los indices la velocidad de la consulta crece muchisimo.

      No se que motor usas pero sino lo tienes el PlanAnalizer te puede servir, bajate la free que es sufi.

      Saludos
      --------------------------------
      Si eres agradecido, obtendrás más...

      YAcosta

      Comentario


      • #4
        Re: Consulta sobre el Máximo de una Fecha

        Hola, buenos días.

        Voy a aplicar vuestros consejos. Gracias y Feliz Año.
        Un saludo.

        Alfredo
        Barcelona-España
        _________________
        Visual Basic
        Videos Programacion
        Foro Programacion
        Tutoriales Programacion
        Normas del Foro

        Comentario

        Trabajando...
        X