* Join the VISUAL and LIQUID tables into cursor "vl" select * from visual v ; full outer join liquid l on v.custid = l.custid and v.upsino = l.upsino and v.datinp = l.puldat ; into cursor vl readwrite ; where v.custid = lcCustid and between(v.upsino, lcStartUpsino, lcEndUpsino) ; and between(v.datinp, ldStartDate, ldEndDate) ; or l.custid = lcCustid and between(l.upsino, lcStartUpsino, lcEndUpsino) ; and between(l.puldat, ldStartDate, ldEndDate) ; order by v.upsino, v.datinp * Custom method to get data from then drop the duplicated custid, upsino, and data fields. thisform.mergefields('vl') * Join the "vl" cursor and the DGA table into cursor "vld" select * from vl v ; full outer join dga d on v.custid = d.custid and v.upsino = d.upsino and v.datinp = d.puldat ; into cursor vld readwrite ; where v.custid = lcCustid and between(v.upsino, lcStartUpsino, lcEndUpsino) ; and between(v.datinp, ldStartDate, ldEndDate) ; or d.custid = lcCustid and between(d.upsino, lcStartUpsino, lcEndUpsino) ; and between(d.puldat, ldStartDate, ldEndDate) ; order by v.upsino, v.datinp * Custom method to get data from then drop the duplicated custid, upsino, and data fields. thisform.mergefields('vld')Thank you again.