Quantcast
Viewing all articles
Browse latest Browse all 72043

Building Query to summerize customers overdue balance

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));
    }


Viewing all articles
Browse latest Browse all 72043

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>