Доброго времени суток!
Пытаюсь повторить SQL запрос в коде:
PHP код:
SELECT DimensionAttribute.name, DimensionConstraintNodeCriteria.* 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