phoenix_me
Member
I have SQL Query which I need to conver to 4GL. I am strugling with two issues. First, the query behave in a strange way, second, conversion.
The Query
What is strange for me in this query it's a WHERE condition for LEFT OUTER JOIN table. Moreover the WHERE for AH.InvoiceDate seems to work as FILTER at the end of query execution.
Regarding conversion I was trying something like that:
but such Query in 4GL gives me of course the same result as SQL query but without the 'Date' filter.
The Query
Code:
select RD.ponum, V.VendorNum, AH.invoicedate, AH.invoiceamt, AH.entryperson
from pub.rcvhead RH
inner join pub.rcvdtl RD on RD.company = 'EN' and RD.Vendornum = RH.Vendornum and RD.purpoint = RH.purpoint and RD.packslip = RH.packslip
inner join pub.vendor V on V.company = 'EN' and V.Vendornum = RD.Vendornum
left outer join pub.apinvhed AH on AH.company = 'EN' and AH.vendornum = RD.vendornum and AH.invoicenum = RD.invoicenum
where AH.company = 'EN' and AH.InvoiceDate > '2010-08-01' and AH.InvoiceDate < '2010-08-15'
Regarding conversion I was trying something like that:
Code:
FOR EACH RcvHed,
EACH RcvDtl WHERE RcvDtl.company = 'EN' and RcvDtl.Vendornum = RcvHed.Vendornum and RcvDtl.purpoint = RcvHed.purpoint and RcvDtl.packslip = RcvHed.packslip,
EACH Vendor WHERE Vendor.company = 'EN' and Vendor.Vendornum = RcvDtl.Vendornum,
EACH apinvhed OUTER-JOIN WHERE apinvhed.company = 'EN' and apinvhed.vendornum = RcvDtl.vendornum and apinvhed.invoicenum = RcvDtl.invoicenum and apinvhed.InvoiceDate > '2010-08-01' and apinvhed.InvoiceDate < '2010-08-15