>>select custid, max(_year), amount ; >>from orders ; >>group by custid >>>>
>* Test data >CREATE CURSOR Customers (CustNo int, CustomerName C(100)) >INSERT INTO Customers VALUES (1,'Cust1') >INSERT INTO Customers VALUES (2,'Cust2') > >CREATE CURSOR Orders (OrderID int , CustNo int, Amount N(10,2), OrderDate date) >INSERT INTO Orders VALUES (1, 1, 10, DATE() - 10) >INSERT INTO Orders VALUES (2, 1, 100, DATE()) >INSERT INTO Orders VALUES (3, 2, 100, DATE() - 5) >INSERT INTO Orders VALUES (4, 2, 1020, DATE()) > >* Subquery solution >select Cust.*, Ord.Amount, Ord.OrderDate from Customers Cust INNER JOIN Orders Ord on Cust.CustNo = Ord.CustNo ; >where Ord.OrderDate >= (select MAX(OrderDate) from Orders O where O.CustNo = Cust.CustNo) > >* Packed value solution >select Cust.*, LO.LastDate, cast(RIGHT(LO.DateAmount,100) as N(12,4)) as Amount from Customers Cust ; >INNER JOIN (select CustNo, max(OrderDate) as LastDate, ; >max(cast(Orderdate as C(10)) + cast(Amount as C(100))) as DateAmount ; >from Orders group by CustNo) LO on Cust.CustNo = LO.CustNo > >* derived tables solution >select Cust.*, LO.LastDate, O.Amount from Customers Cust ; >INNER JOIN (select CustNo, max(OrderDate) as LastDate ; >from Orders O group by CustNo) LO on Cust.CustNo = LO.CustNo ; >inner join Orders O on LO.CustNo = O.CustNo and LO.LastDate = O.OrderDate > >Thanks Naomi. I like the subquery solution. It seems to work fine plus its short and sweet. Any reason to consider either of the other two versions?