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