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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2017, 13:39   #1  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Почему вы так решили? Вы пробовали создать представление на основании запроса, содержащего группировку?
Я попробовал создать view на постоянной таблице и добавил требуемые поля (2 штуки) в Group By, они же оставлены как собственно поля view.
Группировки нет.
Старый 19.01.2017, 14:06   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (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   #3  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Во-первых, спасибо за ссылки.
Во-вторых, получилось обойтись без вьюх и "индивидуальных" query для них.
Для этого необходимо и достаточно для вложенной таблицы (которую группировать вообще-то было не нужно) сделать qbds.addGroupByField() по всем полям её первичного ключа. Недостаток такого решения в том, что вызовом queryRun.get() нельзя получить поля, не включённые в группировку.
Старый 19.01.2017, 16:41   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
получилось обойтись без вьюх и "индивидуальных" query для них.
Для этого необходимо и достаточно для вложенной таблицы (которую группировать вообще-то было не нужно) сделать qbds.addGroupByField() по всем полям её первичного ключа. Недостаток такого решения в том, что вызовом queryRun.get() нельзя получить поля, не включённые в группировку.
Достаточно включить в группировку только нужные поля, ключевые без необходимости включать не обязательно. Связь всё равно сработает ведь она будет осуществлена до группировки
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
если никакие поля вложенной таблицы не участвуют в группировке, то они и не выберутся
Старый 20.01.2017, 09:48   #5  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Ключевые поля нужны все, если надо будет звать find().

Для полноты картины.
Если порядок следования записей, возвращаемых query, не принципиален, то можно сделать группируемую таблицу вложенной, а не группируемую - объемлющей. Тогда всё работает "сразу".
Старый 20.01.2017, 11:34   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
Ключевые поля нужны все, если надо будет звать find(
Речь была про возвращение данных методом queryRun.get(). Для этого не нужна никакая дополнительная группировка кроме той которая необходима по смыслу запроса.
Цитата:
Сообщение от AR® Посмотреть сообщение
Для полноты картины.
Если порядок следования записей, возвращаемых query, не принципиален, то можно сделать группируемую таблицу вложенной, а не группируемую - объемлющей. Тогда всё работает "сразу".
Нет. Не важно на какой таблице запроса внешней или вложенной включать группировку. В результате группироваться будет всё равно весь результат соединения.
Ещё раз, в запросах аксапты происходит сначала соединение, потом группировка. Если нужно наоборот, используйте представления, либо отказывайтесь от соединения таблиц в один запрос и пишите вложенные циклы.
Теги
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, время: 22:01.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.