Вопрос по группировкам и агрегатным функциям в запросе #540092


#0 by mzelensky
Доброго времени суток! Сижу ваяю отчетик и тут столкнулся с такой проблемой.Имеется некое числовое поле, необходимо чтобы на самой нижней группировки (при подведении итого)  это поле группировалось, а потом на всех вышестоящих подсчитывалась сумма. На СКД это делается довольно легко, так как там можно наложить группировку дополнительную на каждый элемент. А вот "чисто в запросе" такой функции нет :( Как решить проблему??? Для наглядности вот запрос (обрезанный чуток): ВЫБРАТЬ    ОбещанныйПлатеж.Регистратор.ОбещаниеКлиента, ГДЕ    ОбещанныйПлатеж.Период МЕЖДУ &ДН И &ДК ИТОГИ    СУММА(Долг) ПО    Контрагент,    ОП, Нужно чтобы этот самый "ДОЛГ" начинал расчитываться "СУММОЙ" начиная именно с группировки по "ДокументПродажи"...а внутри этой группировки группировался...ну или скажем брался как "МИНИМУМ". Как это сделать???
#1 by mzelensky
аппп
#2 by mzelensky
ну что, ни у кого идей нет или просто писать лень?! Подскажите, народ!
#3 by Ненавижу 1С
ДокументПродажи у тебя и так на наименьшем уровне, куда уже ниже группировать?
#4 by mzelensky
ниже него идут "ДвиженияДенежныхСредств.ДокументДвижения"
#5 by mzelensky
Т.е. нужно чтобы по " Контрагент,  ОП, а ниже или если добавить еще одну группировку "ДокументДвижения" - по нему "максимум"
#6 by mzelensky
все...я убил тебя гениальностью вопроса ???
#7 by PVV65
Решение зависит от того, как ты будешь обрабатывать результат запроса. Например, то добавь еще одну агрегатную функцию МАКСИМУМ.
#8 by mzelensky
куда добавить??? обычно обрабатываю - обхожу циклами по группировкам. Количество циклов = количеству группировко + 1.
#9 by PVV65
Сделай две агрегатные функции в запросе Сумма и Максимум по полю Долг и в зависимости от группировки бери соответствующую.
#10 by mzelensky
Вот полный текст запроса и его обработки....
#11 by mzelensky
а как это в запросе прописать??? чтобы брал ту или иную ??? или ты имеешь ввиду брать уже при обработке результатов?
#12 by Evpatiy
Птица счастья завтрашнего дня Прилетела крыльями звеня. Сделай за меня! Сделай за меня, PVV65, до завтрашнего дня!
#13 by Aprobator
нефига не понял, детальную запись по документу движения при обходе результата запроса не можешь достать что ли?
#14 by mzelensky
Могу достать! Мне нужно чтобы поле "Текущий долг" на уровне детальной записи ГРУППИРОВАЛСЯ (или брался как минимум), а на уровне всех вышестоящих группировко расчитывалась агрегатная функция "СУММА" по этому полю!
#15 by mzelensky
ты лучше подскажи чего путевого!
#16 by Aprobator
ну так сделай подзапрос с группировкой по всем полям и агрегатной функций МИНИМУМ, а потом уже с подзапроса ИТОГИ то и тащи. Вот только что получится в конечном счете? Чего добиться то пытаемся?
#17 by Evpatiy
Ага. Сейчас брошу работу, сяду, изучу простыню твоего кода, потом без ТЗ повтыкаю что же надо сделать в режиме вопрос-ответ на форуме, а потом еще пару часов поиграемся в вопрос-ответ подойдет/не подойдет.
#18 by Aprobator
и все это безвозмездно )
#19 by Evpatiy
Не все деньгами меряется. Просто суть не понятна, объяснения сумбурны, задача не прозрачна, а вместо попыток конкретизировать вопрос простыню кода вываливает с предложением самим разобраться. Вот хз на что расчет. Примерно похоже что ему надо вложения использовать с разными группировками, но поди ж разбери без бутылки
#20 by Aprobator
ну простыня то еще та. Чел явно про ЗаполнитьЗначенияСвойств не слышал и про то, что формат можно непосредственно в макете указывать. Это только то, что сразу навскидку видно. Да и суть всего этого тоже неясна (в я попытался уточнить, но пока тихо).
#21 by mzelensky
врятли получится... смотри, приведу пример по 2 последним группировкам: Реализация 1   - сумма документа "10" текущий долг "10" Реализация 2   - сумма документа "40" текущий долг "30"    платежка 1 -  5 руб    платежка 2    5 руб Т.е. По одной реализации не было оплат и долг торчик как 10 (единиц). По второй реализации были 2 оплаты по 5 единиц. Теперь пытаемся получить ИТОГИ по полю ДОЛГ - согласно запросу платежки к реализации тянутся через левое соединение, а следовательно для детальных записей (для каждой) (где перебираются платежки) значение "ТЕКУЩИЙ долг" будет равно "30"...а следовательно на групперовке по "реализации" долг уже будет состалять не "30", как должно быть, а "60" (30+30 - т.к. платежек 2)...вот это я и пытаюсь обойти!
#22 by Evpatiy
Видимо угадал, сейчас идет процесс отладки с учетом твоего совета)
#23 by mzelensky
через "заполнитьзначениясвойств" у меня не будет работать, т.к. макет имеет поля в которые должны попадать разные по именам значения. Про формат мне тоже так удобней работать!
#24 by mzelensky
я уже просто не пойму, как еще более понятно и детально объяснить :(
#25 by mzelensky
фр :(
#26 by Aprobator
в нормально все объяснил. Тебе надо просто итоговую сумму разделить на количество документов движения. Там в итогах можно формулы катать (на ИТС описалово глянь). Что то типа:
#27 by mzelensky
опять глухо
#28 by Ненавижу 1С
ВЫБОР КОГДА ИтогНачинаяСКоторогоМаксимум ЕСТЬ NULL ТОГДА СУММА(Чегототам) ИНАЧЕ МАКСИМУМ(Чегототам) КОНЕЦ КАК Чегототам
#29 by Aprobator
+ только возможно у документадвижения прописать ЕСТЬNULL - подсунуть пустоезначение, а то фиг знает, как там количество реагирует на NULL.
#30 by Aprobator
что глухо то?
#31 by mzelensky
Я сейчас примерно так и делаю...еще не зхнаю, получится или нет..
#32 by Aprobator
долго возишься чего то.
#33 by mzelensky
ну..в результате на уровне этих двух группировок получилось сделать...а вышестоящие все-равно считают не так как нужно. НАписал: ИТОГИ    ВЫБОР        КОГДА ДокументПродажи ССЫЛКА Документ.РеализацияТоваровУслуг Получается что самая нижняя группировка нормально расчитывается...долг по реализации берется нормально (именно как максимум)...но потом то мне нужно суммировать эти поля (по группировке реализации)...а она учитывает сумму и по детальным...зараза
#34 by Aprobator
а не прокатило?
#35 by mzelensky
оно прокатывает с нижней группировкой...а с вышестоящими косяк
#36 by mzelensky
Вот так если:    ВЫБОР        КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДокументОплаты) > 0            ТОГДА СУММА(ТекущийДолг) / КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДокументОплаты) по ДокументПродажи и ДокументОплаты получается правильно ,а по вышестоящим нет
#37 by Aprobator
а млин, по вышестоящим еще не получена группировка по документам движения.
#38 by mzelensky
получается если платежек нет, то все правильно...если же в группировке по "ОП" есть документы с платежками и доки без них, то получется БРЕД!
#39 by mzelensky
:( еще у богов 1С есть предложения???
#40 by mzelensky
...
#41 by mzelensky
ладно....рас больше предложений нет - прийдется делать через ОПУ!!!
#42 by Aprobator
а что мешает СКД заюзать? Макеты там можно нарисовать самому какие хошь.
#43 by mzelensky
да вот блин НАДО!!! ТАм просто целая серия отчетов имеется (этот третий) и хочу все это объединить в одну обработку...ну т.е. пользователь ток вкладочки переключает и получает разные отчеты...2 из 3 я уже написал...и их пришлось писать именно в ручную (по ряду особенностей)...а вот с этим вот косяк :(
#44 by mzelensky
я решил туда ДЕРЕВО ЗНАЧЕНИЙ ПРИМЕНИТЬ :( будет конечно через задницу, но по крайней мере я добьюсь того, что мне нужно!
#45 by Aprobator
с компоновкой это тоже можно реализовать - разные Схемы подсовывать и все.
#46 by mzelensky
да не...там тоже отчеты хитрые...что-то типа этого...где чисто запросом не получается все, что нужно получить... Короче ладно, сейчас сделаю!!!
#47 by mzelensky
УУУУУУУРРРРРРРРРААААААААААААА!!!!!!!ПОЛУЧИЛОСЬ!!!!!! Кому интересно - могу показать как :)
#48 by Aprobator
показывай конечно. Зря что ли мучились )))
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С