Как построить запрос, чтобы если у сотрудника есть несколько строк с одинаковым днем в дате, то взял только строку с датой где время больше?
В результате по Золина Ольга Сергеевна должен получить только строку с датой 01.06.2023 0:01:01, остальных вывести без изменений, т.к. у Румянцева нет строк с одинаковым днем в дате.
В результате по Золина Ольга Сергеевна должен получить только строку с датой 01.06.2023 0:01:01, остальных вывести без изменений, т.к. у Румянцева нет строк с одинаковым днем в дате.
Прикрепленные файлы:

По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Получить временную таблицу и далее связать по сотруднику и дате для получения значения
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(Табл.Период, ДЕНЬ) КАК ПериодДень
МАКСИМУМ(Табл.Период) КАК Период,
Табл.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТ_Табл
ИЗ
Табл КАК Табл
СГРУППИРОВАТЬ ПО
Табл.Сотрудник,
НАЧАЛОПЕРИОДА(Табл.Период, ДЕНЬ)
;
ВЫБРАТЬ
ВТ_Табл.Период КАК Период
ВТ_Табл.Сотрудник КАК Сотрудник
Табл.Значение КАК Значение
ИЗ
ВТ_Табл КАК ВТ_Табл
ЛЕВОЕ СОЕДИНЕНИЕ Табл КАК Табл
ПО ВТ_Табл.Период=Табл.Период И ВТ_Табл.Сотрудник=Табл.Сотрудник
Показать
(3) Их много. По сути вам нужен срез последних. Даже в 1С несколько вариантов.
Про не 1С их ещё больше....
Если нужно на каждую дату где есть какая-то запись, то это дополнительная группировка по началу дня. В остальном по сути тоже самое.
Про не 1С их ещё больше....
Если нужно на каждую дату где есть какая-то запись, то это дополнительная группировка по началу дня. В остальном по сути тоже самое.
Прикрепленные файлы:


Примерно так можно учитывать только последние движения на каждую дату - вложенный запрос с группировкой по началу дня.
И за одно на периоды изменения разбить без лишних записей, которые по факту значения не изменяют. По "Номенклатуре 1" - это 23 января 2022 года, которое значение 100 по факту не изменяет. Не знаю нужно это будет или нет. Но нарисовал. Количество вложенных запросов можно и нужно уменьшить, но так алгоритм понятнее, поэтому оставил сознательно.
Всё написанное можно переписать на язык запросов 1С. Алгоритм можно примерно такой же. А можно и по другому.
Но в любом случае, в запросе 1С будет создание временных таблиц, джоины, много букв, и отработает это в общем случае медленнее, но визуально можно и не заметить.
И за одно на периоды изменения разбить без лишних записей, которые по факту значения не изменяют. По "Номенклатуре 1" - это 23 января 2022 года, которое значение 100 по факту не изменяет. Не знаю нужно это будет или нет. Но нарисовал. Количество вложенных запросов можно и нужно уменьшить, но так алгоритм понятнее, поэтому оставил сознательно.
Всё написанное можно переписать на язык запросов 1С. Алгоритм можно примерно такой же. А можно и по другому.
Но в любом случае, в запросе 1С будет создание временных таблиц, джоины, много букв, и отработает это в общем случае медленнее, но визуально можно и не заметить.
Прикрепленные файлы:

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот