SQL: select 来自两个相关表的最大值

SQL: select max values from two related tables

我有表格:WaiterWaiterDetail 以及 Cafe。 Cafe 可以有很多 Waiter,而 Waiter 可能有很多 WaiterDetails。我想按字段 CreatedDate 查找最旧的 WaiterDetail,这是第一个雇用 Waiter 的 HiredDate。

Cafe:
     *CafeId(primary)

Waiter:  
     *WaiterId(primary)
     *CafeId
     *HiredDate

WaiterDetail:
     *WaiterDetailID(primary)
     *WaiterId
     *CreatedDate

OracleMS SQL Server 的查询看起来如何?

如果我没记错的话,您希望:对于每个咖啡馆,找到第一个(最早)HiredDate 的服务员,并且对于那个服务员,找到最老(最早)CreatedDate 的详细信息.所以,对于 Oracle(可能还有 SQL 服务器),像这样:

SELECT *
FROM   (
  SELECT w.*,
         d.*,
         ROW_NUMBER() OVER ( PARTITION BY CafeID
                             ORDER BY w.HiredDate ASC,
                                      d.CreatedDate ASC ) AS rn
  FROM   Waiter w
         INNER JOIN WaiterDetail d
         ON ( w.WaiterId = d.WaiterId )
)
WHERE  rn = 1;