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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.09.2015, 17:16   #1  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
SQL в QueryBuildDataSource
Доброго времени суток!

Пытаюсь разобраться с Query и QueryBuildDataSource в Х++.

Есть SQL запрос такого вида:
PHP код:
select ma.MAINACCOUNTID,DA.NAME
from MainAccount ma
inner join DimensionAttributeValueCombination DAVC on DAVC
.MainAccount MA.RecId
    inner join DimensionHierarchy DH on DH
.RecId=DAVC.AccountStructure
        inner join DimensionHierarchyLevel DHL on DHL
.DimensionHierarchy=DH.RecId
            inner join DimensionAttribute DA on DA
.RecId=DHL.DimensionAttribute
where ma
.MAINACCOUNTID='632.000'
and DA.NAME=N'поставщик' 
Я в принципе записал его на Х++ но не уверен что правильно, и у меня не выходит применить условия:
PHP код:
where ma.MAINACCOUNTID='632.000'
and DA.NAME=N'поставщик' 
если я добавляю строку addRange то код не выполняется.

Вот мой код
X++:
Query q;
    QueryBuildDataSource qbMA;
    QueryBuildDataSource qbDAVC;
    QueryBuildDataSource qbDH;
    QueryBuildDataSource qbDHL;
    QueryBuildDataSource qbDA;
    
    q = new Query();
    
    qbMA = q.addDataSource(tablenum(MainAccount));
    qbMA.relations(false);
    
    qbDAVC = qbMA.addDataSource(tablenum(DimensionAttributeValueCombination));
    qbDAVC.relations(false);
    qbDAVC.addLink(fieldNum(DimensionAttributeValueCombination,MainAccount),fieldNum(MainAccount,RecId));
    qbDAVC.joinMode(JoinMode::InnerJoin);
    
    qbDH = qbDAVC.addDataSource(tablenum(DimensionHierarchy));
    qbDH.relations(false);
    qbDH.addLink(fieldNum(DimensionHierarchy,RecId),fieldNum(DimensionAttributeValueCombination,AccountStructure));
    qbDH.joinMode(JoinMode::InnerJoin);
    
    qbDHL = qbDH.addDataSource(tablenum(DimensionHierarchyLevel));
    qbDHL.relations(false);
    qbDHL.addLink(fieldNum(DimensionHierarchyLevel,DimensionHierarchy),fieldNum(DimensionHierarchy,RecId));
    qbDHL.joinMode(JoinMode::InnerJoin);
    
    qbDA = qbDHL.addDataSource(tablenum(DimensionAttribute));
    qbDA.relations(false);
    qbDA.addLink(fieldNum(DimensionAttribute,RecId),fieldNum(DimensionHierarchyLevel,DimensionAttribute));
    qbDA.joinMode(JoinMode::InnerJoin);
Подскажите правильно ли я его записал, как применить условие, и как его выполнить и узнать результат (меня интересует факт наличия строк удовлетворяющих условия запроса а не сами строки)?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mfp: SQL–More memory and CPU is not always a win Blog bot DAX Blogs 2 24.10.2014 01:19
emeadaxsupport: AX Performance Troubleshooting Checklist Part 1A [Introduction and SQL Configuration] Blog bot DAX Blogs 0 05.09.2014 21:11
emeadaxsupport: How to perform a data center change (change of the physical location) where a SQL server 2008 R 2 cluster installation and MS Dynamics AX 4.0 is involved? Blog bot DAX Blogs 0 21.06.2014 19:19

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

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

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