Select Foo.Item, Foo.date, MAX(Foo.Price) AS Foo.Price ; from (SELECT * FROM FooA; UNION ALL; SELECT * FROM FooB) Foo; INNER JOIN (SELECT Item, MAX(Date) AS Date; FROM (SELECT * FROM FooA; UNION ALL; SELECT * FROM FooB) Foo; GROUP BY Item) Foo1; ON Foo.Item = Foo1.Item AND Foo.Date = Foo1.Date; GROUP BY Foo.Item, Foo.date; into cursor boo