>SELECT Foo.Custno, Foo.ITEM, Foo.DATE, MAX(Foo.CustPrice) AS CustPrice, MAX(Foo.CustCost) AS CustCost ; > FROM ( ; &&Open Paren 1 > SELECT a_artran.Custno Custno, ; > a_artran.ITEM ITEM, ; > a_artran.price CustPrice, ; > a_artran.cost CustCost, ; > a_armast.invdte DATE ; > FROM a_artran ; > INNER JOIN a_armast ; > ON a_armast.invno = a_artran.invno ; > WHERE a_armast.invdte > DATE() - 400 ; > UNION ALL ; > SELECT a_arytrn.Custno Custno, ; > a_arytrn.ITEM ITEM, ; > a_arytrn.price CustPrice, ; > a_arytrn.cost CustCost, ; > a_arymst.invdte DATE ; > FROM a_arytrn ; > INNER JOIN a_arymst ; > ON a_arymst.invno = a_arytrn.invno ; > WHERE a_arymst.invdte > DATE() - 400 ; > ) Foo ; &&Close Paren 1 > INNER JOIN ( ; &&Open paren 2 > SELECT Custno, ITEM, MAX(DATE) AS DATE ; > FROM ( ; &&Open paren 3 > SELECT a_artran.Custno Custno, a_artran.ITEM ITEM, a_armast.invdte DATE ; > FROM a_artran ; > INNER JOIN a_armast ; > ON a_armast.invno = a_artran.invno ; > WHERE a_armast.invdte > DATE() - 400 ; > UNION ALL; > SELECT a_arytrn.Custno Custno, a_arytrn.ITEM ITEM, a_arymst.invdte DATE ; > FROM a_arytrn ; > INNER JOIN a_arymst ; > ON a_arymst.invno = a_arytrn.invno ; > WHERE a_arymst.invdte > DATE() - 400 ; > ) Foo ; &&Close paren 3 > GROUP BY Custno, ITEM ; > ) Foo1 ; &&Close paren 2 > ON Foo.Custno = Foo1.Custno ; > AND Foo.ITEM = Foo1.ITEM ; > AND Foo.DATE = Foo1.DATE ; > GROUP BY Foo.Custno, Foo.ITEM, Foo.DATE ; > INTO CURSOR curTemp > > SELECT curTemp.*, a_icpric.unitpr1 PricPrice ; > FROM curTemp ; > outer JOIN a_icpric ; > ON curTemp.item = a_icpric.item ; > AND curTemp.custno = a_icpric.custno ; > INTO CURSOR curLatestPrices >>