Всем добрый день! Помогите пожалуйста.
Может кто-нибудь подскажет из личного опыта или какие-нибудь статьи подкинет для прочтения, а то я даже не знаю как в интернете поисковой запрос написать, чтобы что-то дельное нашло.
Вопрос стоит в следующем:
Перебор дат по запросу или по циклу, да хоть как-нибудь. Допустим есть запрос:
Банальный запрос, который выводит объекты и даты, но по одинаковому объекту может быть десять разных дат.
Подскажите, пожалуйста, статьи или хоть что-нибудь, где можно сделать:
1) Вывод только одной строки с одним из условий, к примеру: строка с наименьшей датой или строка с наибольшей датой;
2) Более сложный вариант, это вывод только той строки, что удовлетворяла бы условию, допустим, есть выборка:
Объект1 01.01.2016
Объект1 01.01.2018
Объект1 01.01.2020
Объект1 01.01.2022
Нужно вывести строку с максимальной датой, дата которой меньше 01.01.2023, то есть это строка Объект1 01.01.2022, остальных строк быть не должно. НО, ох это НО. Если в выборке есть строка больше этой даты, (допустим 01.01.2024), то строчка с этим объектом не должна выводиться вообще. А если в колонке даты нет вообще, тогда строчка выводится.
Помогите пожалуйста, советом или может статьи какие-нибудь хорошие, ибо я даже их не могу найти.
Может кто-нибудь подскажет из личного опыта или какие-нибудь статьи подкинет для прочтения, а то я даже не знаю как в интернете поисковой запрос написать, чтобы что-то дельное нашло.
Вопрос стоит в следующем:
Перебор дат по запросу или по циклу, да хоть как-нибудь. Допустим есть запрос:
ВЫБРАТЬ
ОбъектыПоНоменклатуре.Объект,
ОбъектыПоНоменклатуре.Дата
ИЗ
РегистрСведений.ОбъектыПоНоменклатуре.СрезПоследних(&Дата, ) КАК ОбъектыПоНоменклатуре
ГДЕ
НЕ ОбъектыПоНоменклатуре.Объект.ПометкаУдаления
Банальный запрос, который выводит объекты и даты, но по одинаковому объекту может быть десять разных дат.
Подскажите, пожалуйста, статьи или хоть что-нибудь, где можно сделать:
1) Вывод только одной строки с одним из условий, к примеру: строка с наименьшей датой или строка с наибольшей датой;
2) Более сложный вариант, это вывод только той строки, что удовлетворяла бы условию, допустим, есть выборка:
Объект1 01.01.2016
Объект1 01.01.2018
Объект1 01.01.2020
Объект1 01.01.2022
Нужно вывести строку с максимальной датой, дата которой меньше 01.01.2023, то есть это строка Объект1 01.01.2022, остальных строк быть не должно. НО, ох это НО. Если в выборке есть строка больше этой даты, (допустим 01.01.2024), то строчка с этим объектом не должна выводиться вообще. А если в колонке даты нет вообще, тогда строчка выводится.
Помогите пожалуйста, советом или может статьи какие-нибудь хорошие, ибо я даже их не могу найти.
По теме из базы знаний
- Консоль запросов для управляемых форм 8.3
- Почему вообще работает мой запрос? или Ещё раз о планах запросов
- Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Варианты отладки и оптимизации запросов в 1С
Найденные решения
ВЫБРАТЬ
ОбъектыПоНоменклатуре.Объект,
МАКСИМУМ(ОбъектыПоНоменклатуре.Дата) КАК МаксимальнаяДата,
МИНИМУМ(ОбъектыПоНоменклатуре.Дата) МинимальнаяДата
ИЗ
РегистрСведений.ОбъектыПоНоменклатуре.СрезПоследних(&Дата, ) КАК ОбъектыПоНоменклатуре
СГРУППИРОВАТЬ ПО
ОбъектыПоНоменклатуре.Объект
ГДЕ
НЕ ОбъектыПоНоменклатуре.Объект.ПометкаУдаления
ПоказатьПо условиям на расчётные поля группировки используй секцию ИМЕЮЩИЕ. Читай справку по запросам в платформе.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
ОбъектыПоНоменклатуре.Объект,
МАКСИМУМ(ОбъектыПоНоменклатуре.Дата) КАК МаксимальнаяДата,
МИНИМУМ(ОбъектыПоНоменклатуре.Дата) МинимальнаяДата
ИЗ
РегистрСведений.ОбъектыПоНоменклатуре.СрезПоследних(&Дата, ) КАК ОбъектыПоНоменклатуре
СГРУППИРОВАТЬ ПО
ОбъектыПоНоменклатуре.Объект
ГДЕ
НЕ ОбъектыПоНоменклатуре.Объект.ПометкаУдаления
ПоказатьПо условиям на расчётные поля группировки используй секцию ИМЕЮЩИЕ. Читай справку по запросам в платформе.
(2)
Спасибо большое! Знаете, вот я писала такой же запрос вроде, брала максимум, но он мне все равно все строки выводил, я так и не поняла в чем причина. А сейчас сработало, видимо где-то я что-то не так всё-таки писала.
СГРУППИРОВАТЬ ПО
ОбъектыПоНоменклатуре.Объект
ОбъектыПоНоменклатуре.Объект
Спасибо большое! Знаете, вот я писала такой же запрос вроде, брала максимум, но он мне все равно все строки выводил, я так и не поняла в чем причина. А сейчас сработало, видимо где-то я что-то не так всё-таки писала.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот