none
Consulta que devuelva una linea por cada varias con un mismo campo duplicado RRS feed

  • Pregunta

  • Hola, tengo un que hacer una consulta por sql que se me resiste:

    Necesito que la consulta devuelva una linea por cada campo "idregistro" que no se repita, y en caso de que haya varios registros con el mismo "idregistro" que devuelva una sola linea pero tiene que ser la que tenga el campo "id" más alto.

    ¿Cómo podría hacerlo?

     Gracias!

    jueves, 25 de enero de 2018 17:14

Respuestas

  • Select * from laTabla as a
    where Id in (select max(Id) from laTabla as b where b.IdRegistro=a.IdRegistro)
    Esto presume que el Id es la clave primaria (o al menos un identificador unico), mientras que IdRegistro es otro campo distinto que puede tener duplicados.
    • Marcado como respuesta pepecrk jueves, 25 de enero de 2018 17:42
    jueves, 25 de enero de 2018 17:25

Todas las respuestas

  • proba asi

    select IdRegistro, max(Id) from tabla group by IdRegistro


    Att. Franklin Andino


    jueves, 25 de enero de 2018 17:17
  • Select * from laTabla as a
    where Id in (select max(Id) from laTabla as b where b.IdRegistro=a.IdRegistro)
    Esto presume que el Id es la clave primaria (o al menos un identificador unico), mientras que IdRegistro es otro campo distinto que puede tener duplicados.
    • Marcado como respuesta pepecrk jueves, 25 de enero de 2018 17:42
    jueves, 25 de enero de 2018 17:25
  • Select * from laTabla as a
    where Id in (select max(Id) from laTabla as b where b.IdRegistro=a.IdRegistro)
    Esto presume que el Id es la clave primaria (o al menos un identificador unico), mientras que IdRegistro es otro campo distinto que puede tener duplicados.

    Funciona a la perfección, mil gracias por la rapidez.

    Efectivamente el id es la pk de la tabla y el idRegistro una fk que se puede repetir.

    jueves, 25 de enero de 2018 17:44