|
СКД. Выбрать первые. | ☑ | ||
---|---|---|---|---|
0
Lama12
04.09.14
✎
15:50
|
Сломал голову. Хрень выходит :)
Есть регистр накопления "Продажи". Строим отчет за несколько лет, по годам. Т.е. измерения контрагент, года. Ресурс - СтоимостьБезСкидок. Все вроде просто. Но хотят что б выводилось 10 первых по общей сумме за выбранный период. Причем количество первых должно меняться в параметрах. Что сделал. Сделал два набора данных. Один полноценный. Второй обрезанный в котором есть группировка оборотов по контрагенту и больше ничего нет. Этот сортируется и выбирается первые 10 контрагентов. Два этих набора данных связываю по контрагентам. Второй слева первый справа. Почему-то выбираются не те контрагенты которые во втором наборе данных. Если не понятно объяснил, могу выложить всю схему полностью. |
|||
1
AHuk87
04.09.14
✎
15:58
|
А что мешает сделать всё в одном запросе?
|
|||
2
Lama12
04.09.14
✎
16:04
|
(1) Итоги отсортировать нельзя в одном запросе :)
|
|||
3
Kalambur
04.09.14
✎
16:11
|
да четне понятно вообще
|
|||
4
AHuk87
04.09.14
✎
16:14
|
Я потом понял, что тебе количество записей тоже нужен параметром. Так как мне лень думать. Я бы запросом получил записи с итогом по годам. Обходя в цикле нужное количество записей добавлял бы в таблицу и её уже как внешний источник передал в СКД.
|
|||
5
AHuk87
04.09.14
✎
16:18
|
Ну или если более экономично подходить к ресурсами системы, тогда бы собирал текст запроса через объединение по годам с выбором сразу нужного количества записей и получил бы сразу готовую таблицу. Но опять же - внешний источник.
|
|||
6
Lama12
04.09.14
✎
16:35
|
(5) Да... с внешним источником вариант. Но лень :)
Хочется внутри сделать. Хотя... |
|||
7
Kalambur
04.09.14
✎
16:42
|
(6) чем пакетный запрос не устраивает? с 2 одинаковыми запросами?
|
|||
8
Lama12
04.09.14
✎
16:47
|
(7) Разве в пакетном можно сортировку результата сделать?
|
|||
9
Necessitudo
04.09.14
✎
16:50
|
Изврат. Не проще ПриКомпоновкеРезультата в зависимости от значения параметра править текст запроса?
|
|||
10
Lama12
04.09.14
✎
16:56
|
(9) Правлю :)
Как иначе сделать "Первые NN"? Но это во вспомогательном наборе данных. На основном такую штуку лучше не делать. Пользователь может так искарежить настройки отчета, что он будет выводить всякую фигню. А мне надо что б контрагенты всегда выбирались только те, которые являются лидерами по покупкам за выбранный период. |
|||
11
brznzglwgn
04.09.14
✎
17:11
|
(10) Можно сделать нумерацию строк в запросе. А в настройки добавить отбор с фильтром на нумератор...
|
|||
12
Lama12
04.09.14
✎
18:07
|
Обошел проблему криво.
Сделал в запросе СКД фильтр на список контрагентов. Перед построением отчета делаю аналогичный запрос без СКД, с выборкой топ NN контрагентов. Их передаю в параметр СКД. Скорость практически не упала. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |