Hi ,
I want to Query the Items whose modelGroup are stocked products . I can able to query those items with the following query .But after getting the resultant items I need to group the records based on ItemGroup So that I can get/Retrive the distinct Item Group values . I am unable to groupby the resultant Query . whether can I able to group by the resultant query ?
Query query = new query();
QueryBuildDataSource invtbl,grp,mdl,mdlstk;
InventTable invTable;
InventItemGroupItem invGroup;
InventModelGroupItem invModel;
QueryBuildRange queryBuildRange;
InventModelGroup stk;
invtbl = query.addDataSource(tableNum(InventTable));
grp = invtbl.addDataSource(tableNum(InventItemGroupItem));
grp.relations(false);
grp.addLink(fieldNum(InventTable, ItemId), fieldNum(InventItemGroupItem, ItemId));
grp.fetchMode(QueryFetchMode::One2One);
mdl = invtbl.addDataSource(tableNum(InventModelGroupItem));
mdl.relations(false);
mdl.addLink(fieldNum(InventTable, ItemId), fieldNum(InventModelGroupItem, ItemId));
mdl.fetchMode(QueryFetchMode::One2One);
mdlstk = mdl.addDataSource(tableNum(InventModelGroup));
mdlstk.relations(false);
mdlstk.addLink(fieldNum(InventModelGroupItem, ModelGroupId), fieldNum(InventModelGroup, ModelGroupId));
mdlstk.fetchMode(QueryFetchMode::One2One);
mdlstk.addRange(fieldNum(InventModelGroup,StockedProduct)).value(queryvalue(noyes::Yes));
// query.groupByField();
// query.groupByField(fieldNum(InventItemGroupItem, ItemGroupId),grp);
//QueryGroupbyfield = grp.addGroupByField(fieldNum(InventItemGroupItem, ItemGroupId));
// invtbl.addOrderByField(fieldnum(InventTable, ItemId));
//grp.addGroupByField(fieldNum(InventItemGroupItem,ItemGroupId));
//grp.addSortField(fieldnum(InventItemGroupItem, ItemGroupId));
//grp.addOrderByField(fieldnum(InventItemGroupItem, ItemGroupId));
//grp.orderMode(OrderMode::GroupBy);
QueryRun qr = new QueryRun(query);
while(qr.next())
{
invTable = qr.get(tableNum(InventTable));
invGroup = qr.get(tableNum(InventItemGroupItem));
invModel = qr.get(tableNum(InventModelGroupItem));
stk = qr.get(tableNum(InventModelGroup));
Info(strFmt("%1 ,%2 ,%3 ,%4 ,%5",invTable.ItemId,invGroup.ItemGroupId,invModel.ModelGroupId,stk.StockedProduct,stk.ModelGroupId));
}
I have try groupby Methods but it didnt work as Expected . Am I missing anything ? Can I add subquery for the following query to groupby ?