首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:如何按任务分组,并仅选择已完成的任务?

SQL:如何按任务分组,并仅选择已完成的任务?
EN

Stack Overflow用户
提问于 2017-10-20 10:40:16
回答 2查看 146关注 0票数 0

我正在使用Server,我需要下一种方式从todo列表中进行查询。

代码语言:javascript
复制
ID  Date       Status  Phase
1   21.1.2017  Done    1
1   22.1 2017  Done    2
2   20.1.2017  Done    1
2   22.1.2017  Undone  2
3   23.1.2017  Undone  1
3   25.1.2017  Undone  2

因此,我需要找到那些已经完成的任务(所有状态都完成了),然后取最后一个日期,以便最大(日期)?我不需要阶段信息。

结果应该是

代码语言:javascript
复制
ID  Date       Status 
1   22.1 2017  Done

你能帮我如何分组,取最大值(日期),但也制定一些规则,所有的状态是做好的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-20 10:41:32

以下是一种方法:

代码语言:javascript
复制
select t.id, max(t.date) as date, max(t.status) as status
from t
group by t.id
having min(t.status) = max(t.status) and min(t.status) = 'Done';
票数 1
EN

Stack Overflow用户

发布于 2017-10-20 10:48:29

你可以用这个。

代码语言:javascript
复制
SELECT TOP 1 [ID], [Date], [Status] FROM MyTable 
    WHERE [Status] ='Done'
    ORDER BY [Date] DESC
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46847416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档