>WITH ThisForm > .dFrom=.txtStartdate.Value && Used in report form. > .dThru=.txtEndDate.Value && Used in report form. > lcStartDate=DTOC(.txtStartdate.Value) > lcStartDate=SUBSTR(lcStartDate,7,4) + ; > LEFT(lcStartDate,2) + ; > SUBSTR(lcStartDate,4,2) > lcEndDate=DTOC(.txtEndDate.Value) > lcEndDate=SUBSTR(lcEndDate,7,4) + ; > LEFT(lcEndDate,2) + ; > SUBSTR(lcEndDate,4,2) > > SELECT ; > si.cust, ; > cs.customer, ; > SUM(si.StandsIn) As QtyIn, ; > 000000 As QtyOut ; > FROM ; > STANDSIN si, ; > Customer cs ; > WHERE ; > BETWEEN(datein, .dFrom, .dThru) AND ; > si.cust = cs.custno ; > GROUP BY ; > si.Cust, ; > cs.customer ; > ORDER BY cs.Customer ; > INTO TABLE C:\si > > SELECT ; > so.cust, ; > cs.customer, ; > SUM(so.serialcnt) As QtyOut, ; > 000000 As QtyIn ; > FROM ; > Stands_Out so, ; > Customer cs ; > WHERE ; > BETWEEN(date, lcStartDate, lcEndDate) AND ; > so.cust = cs.custno ; > GROUP BY ; > so.cust, ; > cs.customer ; > ORDER BY ; > cs.customer ; > INTO TABLE c:\so >>
select cust.Customer, ; cast(nvl(si1.QtyIn,0) as N(10,2)) as QtyIn, ; cast(nvl(so1.QtyOut,0) as N(10,2)) as QtyOut, ; cast(nvl(si1.QtyIn,0) - nvl(so1.QtyOut,0) as N(10,2)) as nDiffer ; from Customer ; left join ; (SELECT ; > si.cust, ; > cs.customer, ; > SUM(si.StandsIn) As QtyIn, ; > 000000 As QtyOut ; > FROM Customer cs ; INNER JOIN STANDSIN si ; on cs.custno = si.cust > WHERE ; > BETWEEN(datein, .dFrom, .dThru) > GROUP BY ; > si.Cust, ; > cs.customer ; > ORDER BY cs.Customer ) si1 ; on Customer.CustNo = si1.Cust ; > LEFT JOIN ; > (SELECT ; > so.cust, ; > cs.customer, ; > SUM(so.serialcnt) As QtyOut, ; > 000000 As QtyIn ; > FROM Customer cs ; INNER JOIN Stands_Out so ; on cs.custno = so.cust ; > WHERE ; > BETWEEN(date, lcStartDate, lcEndDate) ; > GROUP BY ; > so.cust, ; > cs.customer ; > ORDER BY ; > cs.customer) so1 ; ON customer.CustNo = so1.Cust ; into cursor curFinalThough I'm not 100% certain that you need to join with customer in the inner selects. You may try to go out without them.