Привет всем пытаюсь выбрать максимальную дату заказа и причины отклонения заказа
Но он выводит все даты и все заказы и все причины отклонения, подскажите как лучше сделать
ВЫБРАТЬ
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки,
УведомленияORDRSP.ЗаказEDI,
УведомленияORDRSP.ПричинаОтклонения
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
СГРУППИРОВАТЬ ПО
УведомленияORDRSP.ЗаказEDI,
УведомленияORDRSP.ПричинаОтклонения
ПоказатьНо он выводит все даты и все заказы и все причины отклонения, подскажите как лучше сделать
По теме из базы знаний
- Расчет с помощью СКД остатков регистра по реквизиту регистратора
- Версионирование регистров сведений
- Очистка регистра накопления. Очистка регистра сведений.
- Аудит регистров товародвижения после выполнения операций закрытия месяца для ERP 2.5, KA 2.5, УТ 11.5.
- Универсальная обработка регистров сведений: удаление и обработка записей по фильтрам
Найденные решения
(16) Чтож на 8.0 то до сих пор. да Без СКД
ВЫБРАТЬ
Даты.ДатаМакс,
Максимум(УведомленияМакс.ЗаказEDI) Как ЗаказМакс,
//....
ИЗ (Выбрать Максимум(ДатаПостановки) КАК ДатаМакс,
Минимум(ДатаПостановки) КАК ДатаМин
ИЗ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК Даты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМакс
ПО .Даты.ДатаМакс = УведомленияМакс.ДатаПостановки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМин
ПО .Даты.ДатаМин = УведомленияМин.ДатаПостановки
Показать
(18) Может так?
ВЫБРАТЬ
УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки,
УведомленияORDRSP.ЗаказEDI,
УведомленияORDRSP.ПричинаОтклонения
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ГДЕ
УведомленияORDRSP.ДатаПостановки В
(ВЫБРАТЬ
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP)
Показать
(32) Если не может быть несколько различных заказов на одну и ту же дату (либо в результате они нужные все), то вот пример:
ВЫБРАТЬ
Т1.ДатаПостановки КАК ПерваяДатаПостановки,
Т1.ЗаказEDI КАК ПервыйЗаказ,
Т1.ПричинаОтклонения КАК ПерваяПричина,
Т2.ДатаПостановки КАК ПоследняяДатаПостановки,
Т2.ЗаказEDI КАК ПоследнийЗаказ,
Т2.ПричинаОтклонения КАК ПоследняяПричина
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(Т.ДатаПостановки) КАК МаксДата,
МИНИМУМ(Т.ДатаПостановки) КАК МинДата
ИЗ
РегистрСведений.УведомленияORDRSP КАК Т) КАК ВтДаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрСведений.УведомленияORDRSP КАК Т1
ПО
ВтДаты.МаксДата = Т1.ДатаПостановки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрСведений.УведомленияORDRSP КАК Т2
ПО
ВтДаты.МинДата = Т2.ДатаПостановки
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Должен группировать. может у вас данных немного. Сравните возвращаемые данные своего запроса с этим:
тот же самый набор данных?
ВЫБРАТЬ
УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки,
УведомленияORDRSP.ЗаказEDI,
УведомленияORDRSP.ПричинаОтклонения
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
тот же самый набор данных?
нет несколько заказов, несколкьо причин, несколько дат, и из дат он должен был сгруппировать по максимальной и вывести ту строку, с максимальной датой, а вывел все
Если надо получить последнюю причину отклонения
То сначала нужно получить макс дату по заказу, а затем присоединить причину
То сначала нужно получить макс дату по заказу, а затем присоединить причину
ВЫБРАТЬ
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки,
УведомленияORDRSP.ЗаказEDI
ПОМЕСТИТЬ ЗаказыСрезПоследних
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ГДЕ не УведомленияORDRSP.ПричинаОтклонения = ЗНАЧЕНИЕ(Справочник.ПричиныОтклонения.)
СГРУППИРОВАТЬ ПО
УведомленияORDRSP.ЗаказEDI;
ВЫБРАТЬ
ЗаказыСрезПоследних.ЗаказEDI,
ЗаказыСрезПоследних.ДатаПостановки,
УведомленияORDRSP.ПричинаОтклонения
ИЗ ЗаказыСрезПоследних КАК ЗаказыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ПО ЗаказыСрезПоследних.ЗаказEDI = УведомленияORDRSP.ЗаказEDI
И УведомленияORDRSP.ДатаПостановки = ЗаказыСрезПоследних.ДатаПостановки
Показать
Так что Вы хотите получить? Одну строчку? с последней датой постановки, Заказом и причиной?
Тогда принцип тот же, что и написал в (10) Только во временную таблицу помещаем только одно поле Максимум(ДатаПостановки) и к нему присоединяем Регистр по дате с Максимальным заказом
Тогда принцип тот же, что и написал в (10) Только во временную таблицу помещаем только одно поле Максимум(ДатаПостановки) и к нему присоединяем Регистр по дате с Максимальным заказом
(16) Чтож на 8.0 то до сих пор. да Без СКД
ВЫБРАТЬ
Даты.ДатаМакс,
Максимум(УведомленияМакс.ЗаказEDI) Как ЗаказМакс,
//....
ИЗ (Выбрать Максимум(ДатаПостановки) КАК ДатаМакс,
Минимум(ДатаПостановки) КАК ДатаМин
ИЗ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК Даты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМакс
ПО .Даты.ДатаМакс = УведомленияМакс.ДатаПостановки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМин
ПО .Даты.ДатаМин = УведомленияМин.ДатаПостановки
Показать
(18) Может так?
ВЫБРАТЬ
УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки,
УведомленияORDRSP.ЗаказEDI,
УведомленияORDRSP.ПричинаОтклонения
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ГДЕ
УведомленияORDRSP.ДатаПостановки В
(ВЫБРАТЬ
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP)
Показать
(24) Вероятно так:
ВЫБРАТЬ
УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки,
УведомленияORDRSP.ЗаказEDI,
УведомленияORDRSP.ПричинаОтклонения
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ГДЕ
УведомленияORDRSP.ДатаПостановки В
(ВЫБРАТЬ
МАКСИМУМ(Т1.ДатаПостановки) КАК ДатаПостановки
ИЗ
РегистрСведений.УведомленияORDRSP КАК Т1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
МИНИМУМ(Т2.ДатаПостановки) КАК ДатаПостановки
ИЗ
РегистрСведений.УведомленияORDRSP КАК Т2)
Показать
Еще мне тоже самое надо провернуть с тем же самым полем но с функцией минимум, не понятно как это все в 3 поля раскидать
(32) Если не может быть несколько различных заказов на одну и ту же дату (либо в результате они нужные все), то вот пример:
ВЫБРАТЬ
Т1.ДатаПостановки КАК ПерваяДатаПостановки,
Т1.ЗаказEDI КАК ПервыйЗаказ,
Т1.ПричинаОтклонения КАК ПерваяПричина,
Т2.ДатаПостановки КАК ПоследняяДатаПостановки,
Т2.ЗаказEDI КАК ПоследнийЗаказ,
Т2.ПричинаОтклонения КАК ПоследняяПричина
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(Т.ДатаПостановки) КАК МаксДата,
МИНИМУМ(Т.ДатаПостановки) КАК МинДата
ИЗ
РегистрСведений.УведомленияORDRSP КАК Т) КАК ВтДаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрСведений.УведомленияORDRSP КАК Т1
ПО
ВтДаты.МаксДата = Т1.ДатаПостановки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрСведений.УведомленияORDRSP КАК Т2
ПО
ВтДаты.МинДата = Т2.ДатаПостановки
ПоказатьВЫБРАТЬ
УведомленияORDRSP.ЗаказEDI,
УведомленияORDRSP.ПричинаОтклонения КАК ПричинаОтклонения,
ВложенныйЗапрос.ДатаОтправки,
УведомленияORDRSP.ДатаОтправки КАК ДатаПервойОтправки
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаОтправки
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ПО УведомленияORDRSP.ДатаПостановки = ВложенныйЗапрос.ДатаОтправки
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот