This example :
Query q = new query();
QueryRun qr;
QueryBuildDataSource qbds;
QueryBuildDataSource qbds2;
QueryBuildDataSource qbds3;
QueryBuildRange qbr;
qbds = q.addDataSource(tableNum(CustPackingSlipJour));
qbr = qbds.addRange(fieldnum(CustPackingSlipJour, StatusExportDDTRhiagERA));
qbr.value(QueryValue(NoYes::No));
qbr = qbds.addRange(fieldnum(CustPackingSlipJour, ReturnItemNum));
qbr.value(QueryValue(“”));
qbds3 = qbds.addDataSource(tableNum(EDIDocumentParametersERA));
qbds3.relations(false);
qbds3.joinMode(JoinMode::InnerJoin);
qbds3.fetchmode(QueryFetchMode::One2One);
qbds3.addLink(fieldnum(CustPackingSlipJour, OrderAccount),fieldnum(EDIDocumentParametersERA, CustAccount));
qbds2 = qbds.addDataSource(tableNum(InterfaceWMSParameterERA));
qbds2.relations(false);
qbds2.joinMode(JoinMode::InnerJoin);
qbds2.fetchmode(QueryFetchMode::One2One);
qbds2.addLink(fieldnum(CustPackingSlipJour, InventLocationId),fieldnum(InterfaceWMSParameterERA, IntInventLocationId));
qr = new QueryRun(q);
while (qr.next())
{
//Insert code here
}
Produces this SQL output:
SELECT *
FROM CustPackingSlipJour
WHERE (StatusExportDDTRhiagERA = 0 AND ReturnItemNum = ”)
JOIN EDIDocumentParametersERA
ON CustPackingSlipJour.OrderAccount = EDIDocumentParametersERA.CustAccount
JOIN InterfaceWMSParameterERA
ON CustPackingSlipJour.inventLocationId = InterfaceWMSParameterERA.IntInventLocationId
