|
Сворачивание детальных записей в СКД | ☑ | ||
---|---|---|---|---|
0
yaroshenko_p
26.09.17
✎
10:55
|
Доброго времени суток!
Я столкнулся с такой проблемой при работе с СКД В наборе данных с помощью временных таблиц формируется запрос о соответствии партнеров работающим с ними менеджерам. На выходе получается примерно такой запрос (пишу в упрощенном виде): ВЫБРАТЬ ВТ.Партнер КАК Партнер, ВТ.Менеджер КАК Менеджер, 1 КАК Всего ИЗ ВТ КАК ВТ Каждому менеджеру в базе соотвествует несколько партнеров. На закладке "Настройки" в схеме компоновки данных я задаю группировку "Детальные записи" и в ней указываю выбранные поля "Менеджер" и "Всего". Казалось бы, по каждому менеджеру должно быть выведено несколько строк со значением 1 в поле "Всего". Но выводится только одна строка с 1 по каждому менеджеру! А если к выбранным полям добавить поле "Партнер", то по каждому менеджеру выводится много строк с 1 в поле "Всего", по одной для каждого партнера. Получается, что детальные записи с одинаковыми значениями полей сворачиваются в одну. И чтобы они не сворачивались, в отчет надо выводить также и партнера. Но партнер в отчете мне не нужен. Я понимаю, что можно использовать функцию КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Партнер). Но все равно, интересно, почему детальные записи с одинаковыми полями сворачиваются в одну и как этого избежать? Ведь происходит это не всегда - например, когда информация извлекается без использования временных таблиц, такого сворачивания не происходит. Заранее благодарю за помощь. |
|||
1
h-sp
26.09.17
✎
11:12
|
(0) ИЗ ВТ КАК ВТ
покажите как формируете вт там ведь тоже партнер выкинут. |
|||
2
yaroshenko_p
26.09.17
✎
11:23
|
(1)ВТ формируется сложным запросом с использованием других временных таблиц, но партнер в ней присутствует - когда я пробовал такой же запрос сделать внешней обработкой и прочитать из ВТ результат, то получилось много строк с сочетаниями "Партнер" - "Менеджер" - 1
|
|||
3
yaroshenko_p
26.09.17
✎
11:25
|
(1) Сложный запрос формируется программно - в процедуре ПриКомпоновкеРезультата( ) используется
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ... и далее формирование текста |
|||
4
rabbidX
26.09.17
✎
11:29
|
(0) Можно скриншот настроек?
|
|||
5
h-sp
26.09.17
✎
11:29
|
(2) там даже слова "Партнер" не будет в вашем этом сложном запросе. Это основная теорема СКД. Если нет партнера, то он будет безжалостно выкинут абсолютно во всех запросах, независимо, сложные они или не сложные.
|
|||
6
yaroshenko_p
26.09.17
✎
12:09
|
(5) Не понимаю, даже из запросов, которые формируют временные таблицы?
|
|||
7
rabbidX
26.09.17
✎
12:13
|
(6) http://catalog.mista.ru/public/15036/
Тут посмотрите, какой запрос в итоге получается. |
|||
8
h-sp
26.09.17
✎
13:53
|
(6) временные таблицы - это в первую очередь, это даже не обсуждается.
|
|||
9
yaroshenko_p
26.09.17
✎
15:00
|
(6) Я посмотрел параметры макета компоновки в отладчике. Да, Вы правы, действительно, из запросов партнер вырезается. Но не из всех - только из последнего запроса и из запроса, формирующего последнюю временную таблицу. Предыдущие запросы оставлены в неприкосновенности - там много полей, не участвующих в компоновке, например, значения констант, обращения к которым также идут из временных таблиц.
Но даже с учетом того, что оптимизатор вырезал из двух последних запросов Партнера, непонятно, почему он детальные записи сворачивает? Ну нет там партнера - так вывел бы одинаковые строки в отчет? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |