Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отбор по максимальным датам / 8 сообщений из 8, страница 1 из 1
04.12.2019, 00:00
    #39897856
_Тимур_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
Прошу помощи в реализации следующего запроса

Имеется таблица
fiocodedateИванов13501.01.19 Иванов 262 02.01.19 Петров 436 03.01.19 Петров11701.01.19Петров37502.01.19

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

Пытался использовать следующий код
Код: pascal
1.
2.
3.
select fio, code, MAX(date) as date
from table1
group by 1,2
...
Рейтинг: 0 / 0
04.12.2019, 01:45
    #39897892
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
Код: sql
1.
2.
3.
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
...
Рейтинг: 0 / 0
04.12.2019, 01:52
    #39897894
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
..
...
Рейтинг: 0 / 0
04.12.2019, 02:03
    #39897895
_Тимур_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
DimaBr,

Супер, то что нужно, совсем забыл про алиасы, спасибо
...
Рейтинг: 0 / 0
04.12.2019, 03:18
    #39897902
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
Осталось только понять, что делать с теми ФИО, у которых две одинаковые максимальные даты.
...
Рейтинг: 0 / 0
04.12.2019, 05:20
    #39897914
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
Для таких случаев постановка задачи в существующем виде не имеет смысла.
...
Рейтинг: 0 / 0
04.12.2019, 22:05
    #39898320
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
подскажите, а можно для упрощения синтаксиса использовать оконные функции? у меня есть задача также упростить синтаксис запроса, возвращающего текущие остатки, где также рассчитывается максимальная дата.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
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_ - это текущий таймстэмп
...
Рейтинг: 0 / 0
04.12.2019, 23:04
    #39898338
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отбор по максимальным датам
По оптимизации запросов в сюда
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отбор по максимальным датам / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]