Показать сообщение отдельно
Старый 03.09.2015, 16:52   #1  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Несколько источников для QueryBuildDataSource
Доброго времени суток!

Пытаюсь повторить SQL запрос в коде:

PHP код:
SELECT DimensionAttribute.nameDimensionConstraintNodeCriteria.* FROM DimensionConstraintNode

JOIN  DimensionHierarchyLevel ON DimensionConstraintNode
.DimensionHierarchyLevel DimensionHierarchyLevel.RecId 

JOIN DimensionConstraintNodeCriteria ON DimensionConstraintNode
.RecId DimensionConstraintNodeCriteria.DimensionConstraintNode  
AND((RangeFrom<N'104.211') OR (RangeFrom N'104.211'))  
AND ((
RangeTo>N'104.211') OR (RangeTo N'104.211')) 

JOIN  DimensionAttribute ON DimensionHierarchyLevel.DIMENSIONATTRIBUTE DimensionAttribute.RecId
order by DimensionConstraintNodeCriteria
.RangeFrom 
X++:
Query q;
    QueryRun queryRun;
    QueryBuildDataSource qbDCN;
    QueryBuildDataSource qbDHL;
    QueryBuildDataSource qbDCC;
    QueryBuildDataSource qbDA;
    
    DimensionAttribute da;
    

    q = new Query();

    qbDCN = q.addDataSource(tablenum(DimensionConstraintNode));
    qbDCN.relations(false);
    
    qbDHL = qbDCN.addDataSource(tablenum(DimensionHierarchyLevel));
    qbDHL.relations(false);
    qbDHL.addLink(fieldNum(DimensionConstraintNode,DimensionHierarchyLevel),fieldNum(DimensionHierarchyLevel,RecId));
    qbDHL.joinMode(JoinMode::InnerJoin);
    
    qbDCC = qbDCN.addDataSource(tablenum(DimensionConstraintNodeCriteria));
    qbDCC.relations(false);
    qbDCC.addLink(fieldNum(DimensionConstraintNode,RecId),fieldNum(DimensionConstraintNodeCriteria,DimensionConstraintNode));
    qbDCC.joinMode(JoinMode::InnerJoin);
    
    qbDA = qbDHL.addDataSource(tablenum(DimensionAttribute));
    qbDA.relations(false);
    qbDA.addLink(fieldNum(DimensionHierarchyLevel,DimensionAttribute),fieldnum(DimensionAttribute,RecId));
    qbDA.joinMode(JoinMode::InnerJoin);
Поскольку строка qbDHL = qbDCN встречается несколько раз, запрос карежится. Подскажите как добавлять несколько источников к одному QueryBuildDataSource