Hello!
I'm trying to sort my query by the summed field.
It seems like the query does sum the fields, but sorting is not applied.
Here is my code.
Query q;
QueryRun qr;
QueryBuildDataSource qbd;
CustInvoiceTrans tt;
int i = 0;
q = new Query();
qbd = q.addDataSource(tableNum(CustInvoiceTrans));
qbd.addGroupByField(fieldNum(CustInvoiceTrans, ItemId));
qbd.addSelectionField(fieldNum(CustInvoiceTrans,Qty),SelectionField::Sum);
qbd.addSortField(fieldNum(CustInvoiceTrans,Qty),SortOrder::Descending);
qr = new QueryRun(q);
//For testing the query
while(qr.next()){
tt = qr.get(tableNum(CustInvoiceTrans));
info(tt.ItemId " - " int2str(tt.Qty));
i ;
if(i > 5) break;
}
I also tried using QueryBuildFieldList, but it was still unsuccessful in sorting the table.
Query q;
QueryRun qr;
QueryBuildDataSource qbd;
QueryBuildFieldList qbfl;
CustInvoiceTrans tt;
int i = 0;
q = new Query();
qbd = q.addDataSource(TableNum(CustInvoiceTrans));
qbfl = qbd.fields();
qbfl.addField(fieldNum(CustInvoiceTrans, ItemId));
qbfl.addField(fieldNum(CustInvoiceTrans, Qty), SelectionField::Sum);
qbd.addGroupByField(fieldNum(CustInvoiceTrans, ItemId));
qbd.addSortField(fieldNum(CustInvoiceTrans, Qty), SortOrder::Descending);
qr = new QueryRun(q);
while(qr.next()){
tt = qr.get(tableNum(CustInvoiceTrans));
info(tt.ItemId " - " int2str(tt.Qty));
i ;
if(i > 5) break;
}