Consulta SQL agrupando y подставляют fecha más reciente

Ya он buscado пещера las preguntas y никакой encuentro lo que quiero hacer.

Tengo una tabla del tipo:

user    dat1 dat2 dat3  fecha
----    ---- ---- ----  -----
antonio xxx  xxx  xxx  01/02/16
juan    xxx  xxx  xxx  17/02/16
antonio xxx  xxx  xxx  05/02/16

Quiero ver el registro más reciente de cada usuario.

Estoy trabajando en SQL трезвый Доступ.

Сер Con los datos anteriores el resultado deberia:

juan    xxx  xxx  xxx  17/02/16
antonio xxx  xxx  xxx  05/02/16

Se OS ocurre алгоритм?

Gracias.

0
задан 29.11.2016, 05:06
3 ответа

Попытайся со следующим решением, deberГ - функционировать:

    SELECT [user], dat1, dat2, dat3 Max(fecha) FROM nombre_table GROUP BY [user] ORDER BY Max(fecha) DESC
1
ответ дан 24.11.2019, 12:21
  • 1
    Это функционировало в первую. Спасибо Emiliano. –  eric 28.11.2016, 13:40
  • 2
    @EricDrave самый хороший, что решил тебя. Пометь ответ как решенный, чтобы закрывать ее. Спасибо –  Emiliano Torres 28.11.2016, 13:44

С нею funciГіn max ты можешь делать это:

 select user, dat1, dat2, dat3, max(fecha)
 from nombre_tabla
 group by user ;
0
ответ дан 24.11.2019, 12:21
  • 1
    Спасибо за ответ так rá попросите, но с этим решением он показывает мне все реестры. Я работаю в sql на access. –  eric 28.11.2016, 12:40
  • 2
    @eric: Я не вижу различия между этим ответом и той, которая aceptastes. –  sstan 28.11.2016, 23:41

Я не осознаю, как lograstes, что ты функционировал получающий ответ. Обычно, М Access был бы должен давать тебе ошибку жалуясь, которого dat1, dat2, dat3они не могут быть использованными сами в SELECT потому что они не составляют часть выражения GROUP BY.

И хотя оно функционировало, как могут в базах данных как MySQL, в действительности не остается ясным который dat1, dat2, dat3 он будет возвращать тебя.

В действительности, чтобы писать консультацию правильно, требовался бы первичный ключ. В твоем случае, это не ясно, если у тебя есть одна. Но принимая, что комбинация user, fecha она единственная, правильный способ писать консультацию таким образом:

select t.*
  from tabla t
 inner join (select user, max(fecha) as max_fecha
               from tabla
              group by user) g
    on g.user = t.user
   and g.max_fecha = t.fecha
0
ответ дан 24.11.2019, 12:21
  • 1
    Ты имеешь razó n sstan, не, поскольку это смотрел первый раз. Видно, что со спешкой я apañ и с консультацией консультации. Твой solució n, если, что я функционирует хорошо с единственной консультацией. Большое спасибо sstan. –  eric 05.12.2016, 10:57

Теги

Похожие вопросы