我希望每个用户在过去30天内登录,并检查他们前7天的活动。 Date
一旦他们登录就会映射他们的活动。 Day
是用户登录后经过的天数。
我想要这样的东西。
SELECT UserID, Date
FROM Web
WHERE (Day < = 30) and ( CONVERT(date, Date) - CONVERT(date,CURDATE()) - Day) <= 7 )
ORDER BY UserID asc, Date desc;
我的SQL技能非常基础,所以我需要它尽可能简单。
编辑:
我想也许是这样的:
SELECT UserID, DT
FROM test
WHERE (Day < = 30) and DATEDIFF(DAY, DATEADD( DAY, -Day, GETDATE() ), Date) <= 7
ORDER BY UserID asc, DT desc;
答案 0 :(得分:1)
这应该可以解决问题:
SELECT UserID, Date
FROM Web
WHERE (Day < = 30) and DATEDIFF(DAY, DATEADD(DAY, -[Day], GETDATE()), [Date]) <= 7
ORDER BY UserID asc, Date desc;