Hi.
I am struggling a bit with building a query that can present me with customers overdue balance. I think the issue is related to group by, but not sure. The problem is that I only get one record with a sum for all customers and not per customer as expected. Here is my X++ code (I have also tried an AOT query with the same result). Any suggestions is appreciated.
CustTable custTable;
CustTransOpen custTransOpen;
Query q;
QueryRun qr;
QueryBuildDatasource qbds, qbds1;
QueryBuildRange qbr;
QueryBuildFieldList qbf;
;
q = new Query();
qbds = q.addDataSource(tablenum(CustTable));
qbds.orderMode(Ordermode::GroupBy);
qbr = qbds.addRange(fieldnum(CustTable, CustGroup));
qbr.value("10");
qbds1 = qbds.addDataSource(tablenum(CustTransOpen));
qbds1.orderMode(Ordermode::GroupBy);
qbds1.joinMode(JoinMode::InnerJoin);
qbds1.relations(true);
qbf = qbds1.fields();
qbf.addField(fieldnum(CustTransOpen, AccountNum));
qbf.addField(fieldnum(CustTransOpen, AmountMST), SelectionField::Sum);
qr = new QueryRun(q);
while(qr.next())
{
custTable = qr.get(tablenum(CustTable), 1);
custTransOpen = qr.get(tablenum(CustTransOpen), 1);
info(strfmt("Customer %1 - %2", custTable.Name, custTransOpen.AmountMST));
}