作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] 查询特定时间内满足3次的第一笔资料
时间Mon Jul 27 14:08:25 2015
-- 你的资料表
create table #temp(
ID char(1),
EventDate char(8)
)
-- 计算结果
select ID,min(EventDate) EventDate
from (
select t1.ID,t1.EventDate
from #temp t1 inner join #temp t2
on t1.ID = t2.ID and t1.EventDate <= t2.EventDate
and convert(char(8),dateadd(year,1,t1.EventDate),112) >= t2.EventDate
group by t1.ID,t1.EventDate
having count(*) >= 3
) t1
group by ID
※ 引述《Mutex (Mutex)》之铭言:
: 资料库名称:SQL
: 资料库版本:2012
: 内容/问题描述:
: 想要请教如何计算某特定区间内,满足3次的设定条件,并呈现第一笔的日期
: 也可以说是"计算任何一年区间内,有出现三笔资料,并呈现第一笔资料日期"
: 资料范例如下
: ID EventDate
: A 20050101
: A 20051201
: A 20060215
: A 20060425
: B 20100505
: B 20100707
: B 20100808
: B 20110404
: B 20110425
: C 20000101
: C 20000606
: 想要算出的答案应该是
: A 20050601 <<< 从20051201开始算一年内,count >= 3,所以答案是20051201
: 因为从20050101开始算一年内,没有满足3次的条件,所以不是这天
: B 20100505 <<< 20100505、20100707、20100808都有满足条件,但求最小值2010505
: C则因为没有满足条件,所以答案不会有C
: 再麻烦高手协助解惑了 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.61.233.210
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1437977308.A.F1D.html