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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.07.2004, 13:29   #1  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Query и exists join с group by
Добрый день!

Возникла такая задача: есть некий журнал изменения состояний объектов StatesLog. В нем несколько полей, в том числе: поле-идентификатор объекта (ObjectId), поле с кодом состояния (StateId), поле даты изменения состояния (ChgDate). Состояния каждого объекта меняются не чаще 1 раза в сутки. Необходимо сделать режим отображения только текущих состояний объектов, но отображать при этом все поля журнала.
Что сделал я: попытался присоединить StatesLog к самой себе по exists join, линк по полям ObjectId и ChgDate, с установленной группировкой по ObjectId и выбором максимума по ChgDate. Вот код метода init():
PHP код:
    QueryBuildDatasource qbds;

    
super();
    
qbds StatesLog_Q.dataSourceTable(tableNum(StatesLog)).addDataSource(tableNum(StatesLog));
    
qbds.joinMode(JoinMode::ExistsJoin);
    
qbds.fetchMode(0);
    
qbds.addLink(fieldNum(StatesLogChgDate),     fieldNum(StatesLogChgDate));
    
qbds.addLink(fieldNum(StatesLogObjectId), fieldNum(StatesLogObjectId));
    
qbds.addSelectionField(fieldNum(StatesLogChgDate), SelectionField::Max);
    
qbds.addSelectionField(fieldNum(StatesLogObjectId));
    
qbds.orderMode(OrderMode::GroupBy);
    
qbds.addSortField(fieldNum(StatesLogObjectId)); 
АХАРТА генерит правильный запрос на Х++, но при переводе его в SQL зачем-то добавляет лишнюю внешнюю группировку по ObjectId, используя при этом алиас из внутреннего запроса, на что SQL ругается со словами "Не знаю такого алиаса или таблицы". Т.е. видно, что в запросе присутствуют две абсолютно одинаковые фразы group by, во внутреннем и внешнем запросе.

1. Как вы думаете, почему так происходит и как это побороть?
2. Может быть, есть другой способ решить задачу? Не забываем, что нужно отображать все поля журнала. Группировку по всем полям не предлагать, с этим есть проблемы, т.к. я привел упрощенный вариант задачи.

АХАРТА 3.0СП2

Спасибо
__________________
Андрей.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблемы с Exists Join Logger DAX: Программирование 28 28.04.2010 02:54
axStart: Cannot mix old-style sorting with new-style Group By or Order By on a query. Blog bot DAX Blogs 0 06.11.2008 12:05
Глюки в Query с разными типами Join (в т.ч. NonExistsJoin) к одной таблице gl00mie DAX: Программирование 10 14.02.2007 13:22
Вопрос по query и join tischenko DAX: Программирование 2 20.07.2005 13:05
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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