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