![]() |
#1 |
Участник
|
Cоздание запроса с агрегатом
Написал такой запрос в X++
X++: static void Job103(Args _args) { InventDim inventDim; InventTrans inventTrans; Query query; QueryBuildDataSource qbsInventTrans, qbsInventDim; QueryBuildLink qbl; QueryRun queryRun; QueryBuildRange qbrInventSizeId, qbrStatusIssue, qbrTransType, qbrItemId; Qty mQty; ; // inventDim = this.inventDim(); query = new Query(); qbsInventDim = query.addDataSource(tablenum(InventDim)); qbsInventTrans = qbsInventDim.addDataSource(tablenum(InventTrans)); // qbsInventTrans = qbsInventDim.addDataSource(tablenum(InventTrans)); qbsInventTrans.relations(true); qbsInventTrans.clearLinks(); qbsInventTrans.addLink(fieldnum(InventDim,inventDimId),fieldnum(InventTrans,inventDimId)); qbsInventTrans.joinMode(JoinMode::InnerJoin); qbrTransType = qbsInventTrans.addRange(fieldnum(InventTrans,TransType)); qbrTransType.value(queryvalue(InventTransType::Sales)); qbrStatusIssue = qbsInventTrans.addRange(fieldnum(InventTrans,StatusIssue)); qbrStatusIssue.value(queryValue(StatusIssue::OnOrder)); qbsInventDim.orderMode(OrderMode::GroupBy); qbsInventDim.addSortField(fieldnum(InventDim,InventSizeId)); qbsInventTrans.orderMode(OrderMode::GroupBy); qbsInventTrans.addSortField(fieldnum(InventTrans,ItemId)); qbsInventTrans.addSelectionField(fieldnum(InventTrans,ItemId)); qbsInventTrans.addSelectionField(fieldnum(InventTrans,Qty),SelectionField::Sum); queryRun = new QueryRun(query); if(queryRun.prompt()) { while(queryRun.next()) { inventTrans = queryRun.get(tablenum(InventTrans)); inventDim = queryRun.get(tablenum(InventDim)); info(strFmt('%1 %2 %3', inventTrans.ItemId, inventDim.InventSizeId, inventTrans.Qty)); } } } Подскажите пожалуйста, в чем проблема ? Заранее спасибо. |
|