Отбор по максимальным датам

_Тимур_
Дата: 04.12.2019 00:00:20
Прошу помощи в реализации следующего запроса

Имеется таблица
fiocodedate
Иванов13501.01.19
Иванов26202.01.19
Петров43603.01.19
Петров11701.01.19
Петров37502.01.19


Нужен отбор строк с максимальными датами по каждому fio
fiocodedate
Иванов26202.01.19
Петров43603.01.19


Пытался использовать следующий код
select fio, code, MAX(date) as date
from table1
group by 1,2
DimaBr
Дата: 04.12.2019 01:45:22
select A.* from Table1 A,
 (select fio, MAX(date) as date from table1 group by fio) B
where A.FIO = B.FIO and A.date=B.date
rgreat
Дата: 04.12.2019 01:52:19
..
_Тимур_
Дата: 04.12.2019 02:03:44
DimaBr,

Супер, то что нужно, совсем забыл про алиасы, спасибо
982183
Дата: 04.12.2019 03:18:54
Осталось только понять, что делать с теми ФИО, у которых две одинаковые максимальные даты.
rgreat
Дата: 04.12.2019 05:20:29
Для таких случаев постановка задачи в существующем виде не имеет смысла.
GrigoriyFomin
Дата: 04.12.2019 22:05:41
подскажите, а можно для упрощения синтаксиса использовать оконные функции? у меня есть задача также упростить синтаксис запроса, возвращающего текущие остатки, где также рассчитывается максимальная дата.

create or alter procedure GETAMOUNTS4MODID (
    ACAID_ D_ID,
    MODID_ D_ID,
    ADATE_ D_DBDATE)
returns (
    MODCNT D_PRICE)
as
begin
  select MODCNT
  from AMOUNTS AA
  where (CAID = :ACAID_) and
        (MODID = :MODID_) and
        (ADATE = (select max(ADATE)
                  from AMOUNTS A1
                  where (A1.CAID = :ACAID_) and
                        (A1.MODID = :MODID_) and
                        A1.ADATE <= :ADATE_))
  into :MODCNT;
  suspend;
end

ADATE - то дата, а ADATE_ - это текущий таймстэмп
DimaBr
Дата: 04.12.2019 23:04:43
По оптимизации запросов в сюда