我必须得到用户,这些用户在给定日期之前和之后至少出现两周。所以我要说我有数据:
userName date week
user1 27 10 2011 44
user1 27 10 2011 44
user1 27 10 2011 44
user2 21 04 2011 17
user2 29 04 2011 17
user2 02 05 2011 19
user2 03 05 2011 19
user2 16 05 2011 21
user2 23 05 2011 22
user3 06 01 2011 24
user3 14 05 2011 25
user3 20 05 2011 26
user3 27 05 2011 27
我需要首先按用户和周分组结果,然后我需要计算用户之前出现的周数(比如第20周)和之后,然后选择仅出现在至少2周之前的用户之后,所以在我的情况下,我会得到结果
user2
不幸的是,由于数据库的限制,我无法创建viewTable。这个查询只给出了结果的第一部分,按用户和周分组的数据,但我不知道如何计算分组数据:
SELECT username,
min(a.actionDate) as date,
datepart(wk,a.actionDate) as week
FROM Table1 a
GROUP BY username ,
datepart(wk,amd.actionDate)
感谢您的帮助。
答案 0 :(得分:0)
要返回在指定日期之前至少两周和之后两周拥有日期记录的用户,请尝试:
select username
from Table1
group by username
having datediff(wk, min(actiondate), @date) >= 2 and
datediff(wk, @date, max(actiondate)) >= 2