>>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 >>>>