Max Дата за месяц

1. Fe9_min 50 22.03.18 16:53 Сейчас в теме
День добрый!
Подскажите, как в запросе взять максимальную дату за месяц, а для месяца датыОтчёта - не больше датыОтчёта.
Значения хранится в регистре накопления ОстаткиИОбороты.

Ном1 | 14.01.2018 | 1 рублей
Ном1 | 24.01.2018 | 2 рублей
Ном1 | 12.02.2018 | 3 рублей
Ном1 | 16.02.2018 | 4 рублей
Ном1 | 01.03.2018 | 5 рублей
Ном1 | 05.03.2018 | 6 рублей
_____________________________________
На датуОтчёта = 03.03.2018 результат должен выглядеть так:

Ном1 | 24.01.2018 | 2 рублей
Ном1 | 16.02.2018 | 4 рублей
Ном1 | 01.03.2018 | 5 рублей

Колдовал с МАКСИМУМ и Группировкой... КОНЕЦПЕРИОДА не подходит, вроде...
Нужно решить вопрос именно с получением данных, а не с тем, как вести регистр и где следует хранить такие данные.
Подскажите, кто знает. Заранее спасибо!
+
По теме из базы знаний
Найденные решения
6. Fe9_min 50 23.03.18 07:57 Сейчас в теме
Ваши варианты тоже подходят, но пока ехал домой с работы придумал совместить два моих примера выше, и сработало:

ВЫБРАТЬ
	КОНЕЦПЕРИОДА(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета, МЕСЯЦ) КАК Месяц,
	МАКСИМУМ(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета) КАК ДатаФормированияОтчета
ИЗ
	РегистрНакопления.КМ_ВторичныеПродажи.Обороты(&ДатаНачалаВремён, &ДатаОтчета, , ) КАК КМ_ВторичныеПродажиОбороты

СГРУППИРОВАТЬ ПО
	КОНЕЦПЕРИОДА(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета, МЕСЯЦ)


Колонка МЕСЯЦ - для ориентира, колонка ДатаФормированияОтчета - то что надо.
Вторым запросом присоединяю номенклатуру и сумму.
Всем спасибо!
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DimDiemon 79 22.03.18 16:57 Сейчас в теме
А покажи свой не работающий запрос, может прост напутал что?
По первым прикидкам с МАКСИМУМ и Группировкой должно работать.
+
3. Fe9_min 50 22.03.18 17:07 Сейчас в теме
Последняя строка:
ВЫБРАТЬ
	МАКСИМУМ(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета) КАК ДатаФормированияОтчета
ИЗ
	РегистрНакопления.КМ_ВторичныеПродажи.Обороты(&ДатаНачалаВремён, &ДатаОтчета, , ) КАК КМ_ВторичныеПродажиОбороты


Так последнии секунды месяцов, но это не подходит, ведь у меня записи не последними секундами месяца:

ВЫБРАТЬ
	КОНЕЦПЕРИОДА(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета, МЕСЯЦ) КАК ДатаФормированияОтчета
ИЗ
	РегистрНакопления.КМ_ВторичныеПродажи.Обороты(&ДатаНачалаВремён, &ДатаОтчета, , ) КАК КМ_ВторичныеПродажиОбороты

СГРУППИРОВАТЬ ПО
	КОНЕЦПЕРИОДА(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета, МЕСЯЦ)
+
4. RustamZz 22.03.18 17:08 Сейчас в теме
Выбрать 
Номенклатура, 
Максимум(Дата), 
ВЫБОР КОГДА Дата  <= &ДатаОтчета И КОНЕЦПЕРИОДА(Дата, Месяц) > &ДатаОтчета ТОГДА &ДатаОтчета ИНАЧЕ КОНЕЦПЕРИОДА(Дата, Месяц) КОНЕЦ КАК Месяц
Поместить промежуточная
ИЗ <<>>
ГДЕ Дата  <= &ДатаОтчета 
СГРУППИРОВАТЬ ПО Номенклатура, Месяц;
Выбрать Промежуточная.Номенклатура, Промежуточная.Дата, Цена ИЗ Промежуточная ВНУТРЕННЕЕ <<>> по Промежуточная.Номенклатура И Промежуточная.Дата
Показать
+
5. Sitial 22.03.18 21:21 Сейчас в теме
Под рукой только арендная база, так что на её примере быстро набросал запрос.
Можно было обойтись и без "ВТ_Обороты", но тогда был бы повторяющийся код
ВЫБРАТЬ
	ОборотыПоАренде.УслугаАренды КАК Номенклатура,
	ОборотыПоАренде.ПериодАренды КАК День,
	ОборотыПоАренде.СуммаПриход КАК Сумма
ПОМЕСТИТЬ ВТ_Обороты
ИЗ
	РегистрНакопления.АР_ВзаиморасчетыПоАренде.Обороты(&ДатаНачалаВремён, &ДатаОтчета, , ) КАК ОборотыПоАренде
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	МАКСИМУМ(ВТ_Обороты.День) КАК День,
	КОНЕЦПЕРИОДА(ВТ_Обороты.День, МЕСЯЦ) КАК Месяц
ПОМЕСТИТЬ ВТ_Периоды
ИЗ
	ВТ_Обороты КАК ВТ_Обороты
ГДЕ
	ВТ_Обороты.День <= &ДатаОтчета

СГРУППИРОВАТЬ ПО
	КОНЕЦПЕРИОДА(ВТ_Обороты.День, МЕСЯЦ)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Обороты.Номенклатура КАК Номенклатура,
	ВТ_Периоды.День КАК День,
	ВТ_Периоды.Месяц КАК Месяц,
	ВТ_Обороты.Сумма КАК Сумма
ИЗ
	ВТ_Периоды КАК ВТ_Периоды
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты
		ПО ВТ_Периоды.День = ВТ_Обороты.День

УПОРЯДОЧИТЬ ПО
	День
Показать
+
6. Fe9_min 50 23.03.18 07:57 Сейчас в теме
Ваши варианты тоже подходят, но пока ехал домой с работы придумал совместить два моих примера выше, и сработало:

ВЫБРАТЬ
	КОНЕЦПЕРИОДА(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета, МЕСЯЦ) КАК Месяц,
	МАКСИМУМ(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета) КАК ДатаФормированияОтчета
ИЗ
	РегистрНакопления.КМ_ВторичныеПродажи.Обороты(&ДатаНачалаВремён, &ДатаОтчета, , ) КАК КМ_ВторичныеПродажиОбороты

СГРУППИРОВАТЬ ПО
	КОНЕЦПЕРИОДА(КМ_ВторичныеПродажиОбороты.ДатаФормированияОтчета, МЕСЯЦ)


Колонка МЕСЯЦ - для ориентира, колонка ДатаФормированияОтчета - то что надо.
Вторым запросом присоединяю номенклатуру и сумму.
Всем спасибо!
+
Внимание! Тема сдана в архив

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