Эй парни, мне структурировали следующую таблицу как это:
Так в основном, как Вы видите, отдел проходит смены имени каждые несколько лет. Взгляд номер 16, например. Я хочу запрос Select, который только завоюет репутацию, когда дата будет самой большой. Как я делаю это?
select ID, Name from departments o
where o.thedate=
(select max(i.thedate) from departments i where o.id=i.id)
ВЫБРАТЬ д. * ОТ Отделений d ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ pk ОТ отделов ГРУППА ПО ID ИМЕЕТ theDate = MAX (theDate)) m ON m.pk = d.pk ГДЕ [Имя] = "Отдел"
Каков первичный ключ для этой таблицы? Это делает подзапрос к той же таблице со сравнением имен.
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)
SELECT ID,
First(Name) AS FirstOfName, First(DateChange) AS FirstOfDateChange
FROM departments
GROUP BY ID
ORDER BY First(DateChange) DESC;