SQL-запрос, нужны отдельные строки - PullRequest
5 голосов
/ 25 июня 2010

Эй, ребята, у меня следующая таблица структурирована следующим образом:

row structure

Итак, как вы можете видеть, департамент каждые несколько лет меняет названия. Посмотрите на номер 16, например. Я хочу выбрать запрос, который получит имя только тогда, когда дата будет наибольшей. Как мне это сделать?

Ответы [ 4 ]

5 голосов
/ 25 июня 2010
select ID, Name from departments o 
where o.thedate=
  (select max(i.thedate) from departments i where o.id=i.id)
1 голос
/ 25 июня 2010
SELECT ID, 
First(Name) AS FirstOfName, First(DateChange) AS FirstOfDateChange
FROM departments
GROUP BY ID
ORDER BY First(DateChange) DESC;
0 голосов
/ 29 июня 2010

ВЫБРАТЬ д. * ОТ кафедры d ВНУТРЕННИЙ РЕЙТИНГ (ВЫБЕРИТЕ pk ОТ Департаментов GROUP BY ID ИМЕЯ ДАТУ = МАКС. (ДАТА)) m ВКЛ m.pk = d.pk ГДЕ [Имя] = "Отдел"

0 голосов
/ 25 июня 2010

Какой первичный ключ для этой таблицы? Это делает подзапрос той же таблицы со сравнением имени.

SELECT
    id,
    name,
    date
FROM table
WHERE name = (SELECT TOP 1 name
              FROM table AS subtable
              WHERE subtable.name = table.name
              ORDER BY date DESC)
...