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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.11.2006, 11:48   #1  
Shakr
Гость
 
n/a
В запросе "слиплись в кучу измерения", как выйти из положения?
Добрый день. Код, объяснения потом
X++:
    qbds = q.addDataSource(tablenum(LedgerJournalTrans));
    qbds.fields().addField(fieldNum(LedgerJournalTrans,AmountCurDebit),SelectionField::Sum);
    qbds.fields().addField(fieldNum(LedgerJournalTrans,AmountCurCredit),SelectionField::Sum);
    qbds.addSortField(fieldid2ext(fieldnum(LedgerJournalTrans,dimension),SysDimension::Department)); 
    qbds.addSortField(fieldid2ext(fieldnum(LedgerJournalTrans,dimension),SysDimension::Center));
    qbds.addSortField(fieldid2ext(fieldnum(LedgerJournalTrans,dimension),SysDimension::Purpose));
    qbds.orderMode(OrderMode::GroupBy);      
    qr = new QueryRun(q);
выдаёт следующее:
Цитата:
Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver][SQL Server]A column has been specified more than once in the order by list. Columns in the order by list must be unique.

Оператор SQL: SELECT SUM(A.AMOUNTCURDEBIT),SUM(A.AMOUNTCURCREDIT),A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.DIMENSION4_,A.DIMENSION5_,A.DIMENSION6_ FROM LEDGERJOURNALTRANS A(NOLOCK) WHERE ((DATAAREAID=?) AND ((TRANSDATE>=?) AND (TRANSDATE<=?))) GROUP BY A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.DIMENSION4_,A.DIMENSION5_,A.DIMENSION6_,A.DIMENSION,A.DIMENSION2_ ORDER BY A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.DIMENSION4_,A.DIMENSION5_,A.DIMENSION6_,A.DIMENSION,A.DIMENSION2_ OPTION(FAST 5)
Получается, что в группировку "влезли" ненужные измерения, причем "неудачно" - задвоились. Как бы это полечить?
X++:
SysDimension::Department //первое измерение (нулевое)
SysDimension::Center //второе
SysDimension::Purpose //третье
Забыл добавить Если прибить эту строчку
X++:
    qbds.addSortField(fieldid2ext(fieldnum(LedgerJournalTrans,dimension),SysDimension::Department));
всё будет работать как часики

Последний раз редактировалось Shakr; 24.11.2006 в 11:52.
Старый 24.11.2006, 11:52   #2  
Shakr
Гость
 
n/a
Ой, а в первом измерении - код фирмы? Т.е. оно и не нужно особо, но косяк-то всё равно лезет...
Старый 24.11.2006, 11:55   #3  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
как минимум будет ошибка, для аналитик, надо так
Код:
qbds.addSortField(fieldid2ext(fieldnum(LedgerJournalTrans,dimension),SysDimension::Department + 1));

Последний раз редактировалось raz; 24.11.2006 в 11:58.
Старый 24.11.2006, 12:00   #4  
Shakr
Гость
 
n/a
Как устранить косяк я написал - просто выкинуть эту строчку (она не нужна особо). Вопрос - почему вылезло и по какой причине.

Вы же сделали из измерения #0 измерение #1 что смысла особого делать нет
Старый 24.11.2006, 12:42   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
raz прав.
Dimension[0] = Dimension, то есть полный набор аналитик. Что вы и получили.
Старый 24.11.2006, 12:48   #6  
Shakr
Гость
 
n/a
спасиб
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
"ИЛИ" в запросе через Query Sada DAX: Программирование 4 04.04.2006 13:53
Можно ли в инамическом запросе использовать "group by"? yooshi DAX: Программирование 26 23.09.2005 16:35
Сортировка в запросе "В Наличии" linney DAX: Программирование 16 20.01.2005 20:01
Номнклатура без запасов в запросе "В наличии" Van DAX: Функционал 2 03.03.2004 14:26
Склейка по "ИЛИ" в запросе Andrew Besedin DAX: Программирование 8 20.08.2002 05:56

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

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

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