// Table Aliases
var t0 = new Orders().AsQueryable();
var t1 = new OrderDetails().AsQueryable();
var sql1 = Odb.SQL.Select(x =>
x.From(t0)
.GroupBy(t0.EmployeeID)
.Fields(x["T1"].AS("Type"),
x[t0.EmployeeID].AS("Id"),
x[t0.OrderID].MAX().AS("OrderID"))
);
var sql2 = Odb.SQL.Select(x =>
x.From(t1)
.GroupBy(t1.ProductID)
.Fields(x["T2"].AS("Type"),
x[t1.ProductID].AS("Id"),
x[t1.OrderID].MAX().AS("OrderID"))
);
// union
Odb.SQL.Union(x =>
x.RemoveDuplicates()
.Add(sql1)
.Add(sql2)
.Top(5)
.OrderASC(sql1[0]).OrderASC(sql1[1]).OrderDESC(sql1["OrderID"])
);
R4nvtn