Вероятно, есть более элегантный способ решить эту проблему, но моя первая мысль - просто взять новейшую запись TradeShow, чтобы присоединиться к
SELECT SalePersonID, FirstName, LastName, TradeShow.DateLastWent
FROM SalesPerson
INNER JOIN (
SELECT *
FROM (
SELECT TradeShowId, DateLastWent, City, State, SalesPersonId
FROM TradeShow
ORDER BY datelastwent DESC
)
WHERE ROWNUM <= 1
) ON SalesPerson.SalesPersonId = TradeShow.SalesPersonId
Редактировать
Упс ... слишком много играл с Oracle
ROW_NUMBER() OVER(order by date) or SELECT TOP X
было бы способом SQL Server для этого ... не запускать экземпляр SQL-Server, но вполне уверен, что синтаксис в конечном итоге будет выглядеть как
SELECT SalePersonID, FirstName, LastName, TradeShow.DateLastWent
FROM SalesPerson
INNER JOIN (
SELECT TradeShowId, DateLastWent, City, State, SalesPersonId, ROW_NUMBER() OVER(PARTITION BY TradeShow.SalesPersonId ORDER BY DateLastWent DESC) RowNumber
FROM TradeShow
) ON SalesPerson.SalesPersonId = TradeShow.SalesPersonId AN TradeShow.RowNumber = 1