Sql 如何使用最小条件进行查询?

Sql 如何使用最小条件进行查询?,sql,tsql,Sql,Tsql,我正在尝试选择具有最早SDate的员工的姓名。我尝试了以下方法: SELECT [name] FROM [employee] where [dept] in ('Finance', 'HR', 'IT') and [SDate] = min([SDate]); 我犯了一个错误。这并不奇怪,因为我在where子句中有一个聚合函数。因此,我将其修改为: SELECT [name] FROM [employee]

我正在尝试选择具有最早SDate的员工的姓名。我尝试了以下方法:

SELECT [name]
          FROM [employee]
          where [dept] in ('Finance', 'HR', 'IT')
          and [SDate] = min([SDate]);   
我犯了一个错误。这并不奇怪,因为我在where子句中有一个聚合函数。因此,我将其修改为:

SELECT [name]
          FROM [employee]
          where [dept] in ('Finance', 'HR', 'IT')
          group by [name]
          having [SDate] = min([SDate]);

但它仍然不起作用。我应该如何构造我的T-SQL,以便能够获得具有最小SDate的员工的姓名?

使用
按顺序
顶部

SELECT top 1 [name]
FROM [employee]
WHERE [dept] in ('Finance', 'HR', 'IT')
ORDER BY sdate desc;

使用
orderby
top

SELECT top 1 [name]
FROM [employee]
WHERE [dept] in ('Finance', 'HR', 'IT')
ORDER BY sdate desc;