AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2017, 13:12   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
Всё это хорошо, пока в объемлющем qbds (qbds1 в вышеприведённом примере) нет группировок.

Если же их добавить, то вложенная таблица (qbds2 / Table2 в вышеприведённом примере) просто перестанет выбираться.
Это потому что в таком случае произойдёт сначала соединение, а уже потом группировка. И если никакие поля вложенной таблицы не участвуют в группировке, то они и не выберутся.

Если вы хотите получить запрос где таблица сначала группируется, а потом к результату группировки джойнится вложенная таблица, то нужно использовать промежуточный View для группировки и уже этот View соединять с вложенной таблицей.

Проясните запрос

Последний раз редактировалось S.Kuskov; 19.01.2017 в 13:15.
Старый 19.01.2017, 13:24   #2  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
нужно использовать промежуточный View для группировки и уже этот View соединять с вложенной таблицей.
В приведённой теме речь о select'ах в коде - там это так.

А с qbds в query ничего не получится. Поля в разделе Group By в дизайне вьюхи будут проигнорированы, а qbds.addGroupByField(viewName, viewField) приведёт к тому, что вложенная таблица не будет выбираться.

Так в Ax2009.
Подчеркну, что речь идёт о несвязанных таблицах (ни через их Relation, ни через qbds2.addLink() ) , когда надо поучить декартово произведение двух выборок "всё на всё".

Последний раз редактировалось AR®; 19.01.2017 в 13:31.
Старый 19.01.2017, 13:31   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
с qbds в query ничего не получится. Поля в разделе Group By в дизайне вьюхи будут проигнорированы
Почему вы так решили? Вы пробовали создать представление на основании запроса, содержащего группировку?

Цитата:
Сообщение от AR® Посмотреть сообщение
Подчеркну, что речь идёт о несвязанных таблицах (ни через их Relation, ни через qbds2.addLink() ) , когда надо поучить декартово произведение двух выборок "всё на всё".
Да какая разница. Наличие или отсутствие relation не меняет принципа соединения таблиц, а влияет только на последующую фильтрацию результата соединения.

Последний раз редактировалось S.Kuskov; 19.01.2017 в 13:35.
Старый 19.01.2017, 13:39   #4  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Почему вы так решили? Вы пробовали создать представление на основании запроса, содержащего группировку?
Я попробовал создать view на постоянной таблице и добавил требуемые поля (2 штуки) в Group By, они же оставлены как собственно поля view.
Группировки нет.
Старый 19.01.2017, 14:06   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
Я попробовал создать view на постоянной таблице и добавил требуемые поля (2 штуки) в Group By, они же оставлены как собственно поля view.
Группировки нет.
https://msdn.microsoft.com/en-us/library/bb314551.aspx
Цитата:
Do not specify a field in the Group By element. A view does not use the field information in the Group By element.

Note: If you want to group the records in a view, replace the view data source with a query that has the specified group by information.
https://msdn.microsoft.com/en-us/lib...(v=ax.50).aspx
https://msdn.microsoft.com/en-us/lib...(v=ax.50).aspx
За это сообщение автора поблагодарили: AR® (1).
Старый 19.01.2017, 15:08   #6  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Во-первых, спасибо за ссылки.
Во-вторых, получилось обойтись без вьюх и "индивидуальных" query для них.
Для этого необходимо и достаточно для вложенной таблицы (которую группировать вообще-то было не нужно) сделать qbds.addGroupByField() по всем полям её первичного ключа. Недостаток такого решения в том, что вызовом queryRun.get() нельзя получить поля, не включённые в группировку.
Старый 19.01.2017, 16:41   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
получилось обойтись без вьюх и "индивидуальных" query для них.
Для этого необходимо и достаточно для вложенной таблицы (которую группировать вообще-то было не нужно) сделать qbds.addGroupByField() по всем полям её первичного ключа. Недостаток такого решения в том, что вызовом queryRun.get() нельзя получить поля, не включённые в группировку.
Достаточно включить в группировку только нужные поля, ключевые без необходимости включать не обязательно. Связь всё равно сработает ведь она будет осуществлена до группировки
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
если никакие поля вложенной таблицы не участвуют в группировке, то они и не выберутся
Теги
query, queryrun

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxhints: Query datasource FirstOnly property Blog bot DAX Blogs 0 22.03.2016 09:11
emeadaxsupport: Microsoft Dynamics AX general performance analysis scripts page 5 Blog bot DAX Blogs 0 01.09.2014 14:11
AIF: OData Query Service Blog bot DAX Blogs 0 24.08.2011 09:11
jinx: Dynamics AX – Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:24.