SQL:返回最早的记录

SQL:返回最早的记录,sql,Sql,所以 我有一个表(WOSTATUS)。带有列(WONUM,STATUS,CHANGEDATE) 现在一个WONUM有多种状态。我感兴趣的是状态ACTION。但是,WONUM可以在其生命周期内多次设置为ACTION,并且在该表中,每次设置为ACTION时,它都会成为一个新行 我想要的是一份当WONUM第一次付诸行动时的清单。日期记录在CHANGEDATE中 请提供帮助。您可以使用以下分组方式: SELECT WONUM, MIN(CHANGEDATE) FROM WOSTATUS WHERE

所以

我有一个表(
WOSTATUS
)。带有列(
WONUM
STATUS
CHANGEDATE

现在一个
WONUM
有多种状态。我感兴趣的是状态
ACTION
。但是,
WONUM
可以在其生命周期内多次设置为ACTION,并且在该表中,每次设置为ACTION时,它都会成为一个新行

我想要的是一份当WONUM第一次付诸行动时的清单。日期记录在
CHANGEDATE


请提供帮助。

您可以使用以下
分组方式:

SELECT WONUM, MIN(CHANGEDATE) 
FROM WOSTATUS 
WHERE STATUS = 'ACTION' 
GROUP BY WONUM, STATUS

我是否正确理解,每次状态更改时,都会向表中添加新行。当第一个状态是“动作”
时,您想要条目的
WONUM

在这种情况下,请尝试以下操作:

SELECT WONUM
FROM WOSTATUS
WHERE (SELECT TOP 1 STATUS
       FROM WOSTATUS T
       WHERE T.WONUM = WONUM
       ORDER BY CHANGEDATE) = 'ACTION'

到目前为止你试过什么?听起来你应该运行groupby和order byAction@indofraiser我使用了OrderByChangeDate,但是它只返回所有行,然后按降序排列。我只想返回最早日期的行。您能提供一些表中数据的示例和预期结果吗?