首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按if条件分组

问按if条件分组
EN

Stack Overflow用户
提问于 2013-11-22 21:57:22
回答 1查看 178关注 0票数 0

我有一个总查询,其中我按id分组,并在每个组中从第一行取一个date1字段,从最后一行取一个date2。我想做的是,只有在两个日期之间没有区别的情况下,才进行分组。

例如,我有一张桌子:

代码语言:javascript
复制
id     date1       date2 
1      1-1-2012    5-5-2012
1      5-5-2012    27-6-2012
2      26-4-2012   23-8-2012
2      22-5-2012   5-6-2012

我想作出以下选择:

代码语言:javascript
复制
id     date1       date2 
1      1-1-2012    27-6-2012
2      26-4-2012   23-8-2012
2      22-9-2012   5-12-2012

我有一个非常大的表,所以查询必须是相对高效的。对于如何做到这一点,有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-23 13:12:12

这不会给你答案,但它可能会帮助某人越过终点线。我只是还没喝咖啡..。*o)

代码语言:javascript
复制
SELECT T1.ID, Min(T1.Date1) as Dt1A, Max(T1.Date2) as Dt2A, Max(T2.Dt1) as Dt1B, Max(T2.Dt2) as Dt2B, IIF(Max(T2.Dt1) = Max(T2.Dt2), "True", "False") as Status
FROM tblDateStuff as T1
LEFT JOIN (
    SELECT ID, Max(Date1) as Dt1, Min(Date2) as Dt2
    FROM tblDateStuff
    GROUP BY ID
    ORDER BY ID ASC) as T2
ON T1.ID = T2.ID
GROUP BY T1.ID
ORDER BY T1.ID ASC

您可能需要将整个代码块封装到一个更大的块中,并对其执行一些操作。似乎您只想分组如果Status = "True",但我不知道如何做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20155231

复制
相关文章

相似问题

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