>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