![]() |
![]() |
![]() |
|
Группировка по ВСЕМ элементам справочника, включая пустые | ☑ | ||
---|---|---|---|---|
0
Желтый домик
17.09.13
✎
20:14
|
Доброе время всем!
Есть задача вывести отчет, в котором для всех ЦФО будут выводиться все элементы справочника СтатьиБюджетов, даже если они пустые. Если группировку делать Статья - ЦФО, все работает. А вот если ЦФО - Статья, получается, что статьи, по которым не было оборотов выводятся в пустом ЦФО, а в рабочие ЦФО попадают только Статьи с движениями. Вот код ВЫБРАТЬ Бюджет.ЦФО КАК ЦФО, СпрСтатьяБюджета.Ссылка КАК Статья, Бюджет.Сумма КАК Сумма ИЗ Справочник.СтатьяБюджета КАК СпрСтатьяБюджета ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Бюджет КАК Бюджет ПО (Бюджет.СтатьяБюджета = СпрСтатьяБюджета.Ссылка) ИТОГИ СУММА(Сумма) ПО ЦФО, Статья |
|||
1
fisher
17.09.13
✎
20:19
|
Делай левое соединение не к статьям бюджета, а к подзапросу, который возвращает все комбинации статей и ЦФО (по ЦФО тоже не забудь соединить).
Все комбинации можно получить соединением по ИСТИНА или просто перечислив источники через запятую. Декартово произведение множеств, называется. |
|||
2
fisher
17.09.13
✎
20:22
|
Или объединить выборку из регистра с таким подзапросом.
|
|||
3
Желтый домик
17.09.13
✎
20:30
|
(2) Тут такой нюанс. Мне это нужно сделать в построителе, чтобы пользователь мог добавлять/убирать произвольно группировки. Сам регистр имеет 6 измерений
|
|||
4
Желтый домик
17.09.13
✎
20:32
|
(1) Ой, вот это не дочитал. Сейяас буду пробовать
|
|||
5
Желтый домик
17.09.13
✎
21:05
|
(1) Все комбинации можно получить соединением по ИСТИНА или просто перечислив источники через запятую
Пытаюсь придумать подзапрос. Не получается. Т.е. ЦФО и Статьи - лва справочника. Общих реквизитов нет. Не могу сделать так ЦФО 1 Статья 1 Статья 2 Статья 3 ЦФО 2 Статья 1 Статья 2 Статья 3 и т.д. |
|||
6
Желтый домик
17.09.13
✎
21:14
|
Кажется начинаю въезжать. Спасибо
ВЫБРАТЬ ЦФО.Ссылка КАК ЦФО, СтатьяБюджета.Ссылка КАК Статья ИЗ Справочник.СтатьяБюджета КАК СтатьяБюджета ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ЦФО КАК ЦФО ПО (ИСТИНА) |
|||
7
Repey
18.09.13
✎
08:54
|
(6) Да делай вообще без соединения. Для чего оно там? Тебе же все равно все комбинации нужны.
|
|||
8
mistеr
18.09.13
✎
10:29
|
(7) >вообще без соединения
Этот вид соединения называется "декартово произведение". |
|||
9
Лодырь
18.09.13
✎
10:41
|
(8) Или внешнее соединение? )
|
|||
10
mistеr
18.09.13
✎
10:44
|
(9) Нет.
|
|||
11
Ёпрст
гуру
18.09.13
✎
10:44
|
вообще-то , тупо кросс джоин и привет:
ВЫБРАТЬ ЦФО.Ссылка КАК ЦФО, СтатьяБюджета.Ссылка КАК Статья ИЗ Справочник.СтатьяБюджета КАК СтатьяБюджета ,Справочник.ЦФО КАК ЦФО |
|||
12
Желтый домик
30.09.13
✎
03:12
|
Декартовым соединением система просто легла. Конечно, я ее на файловой тестил, но производительность меня сильно не устроила. Решил создать отдельно справочник, заполняемый программно и хранящий комбинации всех возможный статей и ЦФО. Еще он выполняет функцию образца для построения иерархии. Производительность многократно увеличилась. Справочник заполняется за 2 мин. один раз в пол года а выборка из него с учетом обработки доп. параметров (цвет строки, иерархия, сортировка, сворачивание) занимает 10 - 15 сек.
|
|||
13
fisher
30.09.13
✎
10:13
|
(12) Справочник лишний. Если по странной причине план выполнения получается жутко неоптимальный, можно комбинации во временную таблицу загнать.
А вообще покажь итоговый запрос. |
|||
14
Желтый домик
30.09.13
✎
10:49
|
Для удобства пользователей использовал построитель отчета. А в построителе с ТЗ не поработаешь, к сожалению. Передать, конечно, ТЗ в построитель можно, а что-то с ним потом сделать - по крайней мере я не знаю как.
|
|||
15
fisher
30.09.13
✎
10:54
|
Я не о ТЗ. Я о временных таблицах и пакетных запросах.
Построитель это умеет. |
|||
16
fisher
30.09.13
✎
10:54
|
А для удобства пользователей надо СКД юзать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |