Вход | Регистрация


Как оптимально получить последнее движение по номенклатуре?

Как оптимально получить последнее движение по номенклатуре?
Я
   DTX 4th
 
14.11.18 - 16:12
Смог вот так. Работает, как и ожидалось, небыстро. Какие ещё есть варианты?
ВЫБРАТЬ
    ХозрасчетныйСубконто.Период,
    ХозрасчетныйСубконто.Регистратор,
    ХозрасчетныйСубконто.Значение
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
ГДЕ
    ХозрасчетныйСубконто.Вид = &Вид
    И ХозрасчетныйСубконто.Значение В(&Номенклатура)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТ.Значение,
    МАКСИМУМ(ВТ.Период) КАК Период
ПОМЕСТИТЬ МаксПериод
ИЗ
    ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
    ВТ.Значение
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    МаксПериод.Значение КАК Номенклатура,
    МаксПериод.Период КАК ПоследнееДвижение,
    МАКСИМУМ(ВТ.Регистратор) КАК Регистратор
ИЗ
    ВТ КАК ВТ
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ МаксПериод КАК МаксПериод
        ПО ВТ.Период = МаксПериод.Период
            И ВТ.Значение = МаксПериод.Значение

СГРУППИРОВАТЬ ПО
    МаксПериод.Период,
    МаксПериод.Значение

 
 
   Byasha
 
1 - 14.11.18 - 16:21
Упорядочивание в запросе отменили?
Выбрать первые 1 отменили?
Можно обойтись одним запросом с выборкой первой записи и сортировкой по убыванию периода.
   DTX 4th
 
2 - 14.11.18 - 16:22
(1) У меня массив номенклатура
   unregistered
 
3 - 14.11.18 - 16:31
(0) Не понял - почему нельзя сделать одним запросом? Зачем тут ВТ?

ВЫБРАТЬ
    МАКСИМУМ(ХозрасчетныйСубконто.МоментВремени),
    ХозрасчетныйСубконто.Значение
 ИЗ
    РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
 ГДЕ
    ХозрасчетныйСубконто.Вид = &Вид
    И ХозрасчетныйСубконто.Значение В(&Номенклатура)
 СГРУППИРОВАТЬ ПО
    ХозрасчетныйСубконто.Значение
   DTX 4th
 
4 - 14.11.18 - 16:31
(3) Регистратор нужен (:
   DTX 4th
 
5 - 14.11.18 - 16:34
В общем, это норма?
Причем, если понадобиться отбор на Балансовые счета, то мне останется только заменить таблицу на "Хозрасчетный.Обороты"? Выглядит страшновато.
   unregistered
 
6 - 14.11.18 - 16:35
(4) МоментВремени содержит регистратор и период
   unregistered
 
7 - 14.11.18 - 16:37
МоментВремени.
Свойства: Дата (Date) Ссылка (Ref).
Описание: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных
   unregistered
 
8 - 14.11.18 - 16:41
(5) > если понадобиться отбор на Балансовые счета, то мне останется только заменить таблицу на "Хозрасчетный.Обороты"?

Обороты тут лучше не брать, когда тебе нужна детализация до регистратора.
Лучше либо взять таблицу движений с субконто (которая по сути есть соединение таблиц Основная и Значения субконто), либо самому написать запрос с внутренним соединением двух таблиц - Основная и Значение субконто.
   DTX 4th
 
9 - 14.11.18 - 17:15
(6) Неожиданно в таблице есть поле МоментВремени)
(8) Понял, логично.
Спасибо!
   DTX 4th
 
10 - 14.11.18 - 17:19
Отбой. Момент времени нельзя в МАКСИМУМ() передавать (:
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует