|
Запрос ПЕРИОДАМИ с группировкой по измерению | ☑ | ||
---|---|---|---|---|
0
slafor
02.08.23
✎
13:35
|
Подскажите, плиз. Вроде бы вопрос простой, но что-то никак не соображу.
Есть запрос по оборотному регистру накоплений. В качестве измерения в регистре есть поле Сотрудник. Я получаю по нему итоги ПЕРИОДАМИ месяц, в итоге получаю такую таблицу: Месяц1 Сотрудник1 Сотрудник2 Сотрудник3 Месяц2 Сотрудник1 Сотрудник2 Сотрудник3 А хотелось бы наоборот, чтобы сначала были группировки по сотрудниками, а уже потом - по месяцам: Сотрудник1 Месяц1 Месяц2 Сотрудник2 Месяц1 Месяц2 Сотрудник3 Месяц1 Месяц2. Ну и так далее. Очень не хочется использовать запрос в цикле, уверен, что можно решить одним запросом. Не подскажете, как? Регистр имеет измерение Сотрудник и числовые ресурсы. |
|||
1
asady
02.08.23
✎
13:40
|
(0) поменяй местами группировки в настройках структуры отчета
|
|||
2
slafor
02.08.23
✎
13:52
|
(1) Но там вообще нет группировок, к тому же предложение ПЕРИОДАМИ у меня в ИТОГАХ:
ВЫБРАТЬ ОбщиеОценкиСотрудниковОбороты.Период КАК Период, ОбщиеОценкиСотрудниковОбороты.Сотрудник КАК Сотрудник, ОбщиеОценкиСотрудниковОбороты.ОценкаОборот КАК ОценкаОборот ИЗ РегистрНакопления.ОбщиеОценкиСотрудников.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК ОбщиеОценкиСотрудниковОбороты УПОРЯДОЧИТЬ ПО ОбщиеОценкиСотрудниковОбороты.Сотрудник.Наименование, Период ИТОГИ СРЕДНЕЕ(ОценкаОборот) ПО Период ПЕРИОДАМИ(МЕСЯЦ, , ) |
|||
3
RomanYS
02.08.23
✎
13:58
|
ИТОГИ
СРЕДНЕЕ(ОценкаОборот) ПО Сотрудник, Период ПЕРИОДАМИ(МЕСЯЦ, , ) |
|||
4
1CBaseV8
02.08.23
✎
14:03
|
ВЫБРАТЬ
ВзаиморасчетыССотрудникамиОстатки.ФизическоеЛицо КАК ФизическоеЛицо, СУММА(ВзаиморасчетыССотрудникамиОстатки.СуммаВзаиморасчетовОстаток) КАК НачОст ПОМЕСТИТЬ втНачОст ИЗ РегистрНакопления.ВзаиморасчетыССотрудниками.Остатки(&грнПредНачПериода, ) КАК ВзаиморасчетыССотрудникамиОстатки СГРУППИРОВАТЬ ПО ВзаиморасчетыССотрудникамиОстатки.ФизическоеЛицо ИНДЕКСИРОВАТЬ ПО ФизическоеЛицо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВзаиморасчетыССотрудникамиОбороты.ФизическоеЛицо КАК ФизическоеЛицо, КОНЕЦПЕРИОДА(ВзаиморасчетыССотрудникамиОбороты.Период, МЕСЯЦ) КАК ПериодМесяц, СУММА(ВзаиморасчетыССотрудникамиОбороты.СуммаВзаиморасчетовПриход) КАК СуммаВзаиморасчетовПриход, СУММА(ВзаиморасчетыССотрудникамиОбороты.СуммаВзаиморасчетовРасход) КАК СуммаВзаиморасчетовРасход ПОМЕСТИТЬ втОбороты ИЗ РегистрНакопления.ВзаиморасчетыССотрудниками.Обороты(&грнНачПериода, &грнКонПериода, Месяц, ) КАК ВзаиморасчетыССотрудникамиОбороты СГРУППИРОВАТЬ ПО ВзаиморасчетыССотрудникамиОбороты.ФизическоеЛицо, КОНЕЦПЕРИОДА(ВзаиморасчетыССотрудникамиОбороты.Период, МЕСЯЦ) ИНДЕКСИРОВАТЬ ПО ФизическоеЛицо, ПериодМесяц ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.ФизическоеЛицо КАК ФизическоеЛицо, ВложенныйЗапрос.ПериодМесяц КАК ПериодМесяц, ЕСТЬNULL(втНачОст.НачОст, 0) + ВложенныйЗапрос.ПредОборот КАК НачОст, ВложенныйЗапрос.Приход КАК Приход, ВложенныйЗапрос.Расход КАК Расход, ЕСТЬNULL(втНачОст.НачОст, 0) + ВложенныйЗапрос.ПредОборот + ВложенныйЗапрос.Приход - ВложенныйЗапрос.Расход КАК КонОст ИЗ (ВЫБРАТЬ втОбороты.ФизическоеЛицо КАК ФизическоеЛицо, втОбороты.ПериодМесяц КАК ПериодМесяц, МАКСИМУМ(втОбороты.СуммаВзаиморасчетовПриход) КАК Приход, МАКСИМУМ(втОбороты.СуммаВзаиморасчетовРасход) КАК Расход, СУММА(ЕСТЬNULL(втОбороты1.СуммаВзаиморасчетовПриход, 0) - ЕСТЬNULL(втОбороты1.СуммаВзаиморасчетовРасход, 0)) КАК ПредОборот ИЗ втОбороты КАК втОбороты ЛЕВОЕ СОЕДИНЕНИЕ втОбороты КАК втОбороты1 ПО втОбороты.ФизическоеЛицо = втОбороты1.ФизическоеЛицо И втОбороты.ПериодМесяц > втОбороты1.ПериодМесяц СГРУППИРОВАТЬ ПО втОбороты.ФизическоеЛицо, втОбороты.ПериодМесяц) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ втНачОст КАК втНачОст ПО ВложенныйЗапрос.ФизическоеЛицо = втНачОст.ФизическоеЛицо |
|||
5
slafor
02.08.23
✎
14:07
|
(3) Спасибо, работает!
(4) Тоже, наверное, хорошо, но очень уж мудрено, мне для моей простой задачи это не потребуется :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |