0

我想使用即将发生的事件。

我的桌子

ID | Name   | StartDate  | Repeats
1  | Theater| 23.09.2013 | 0
2  | Cinema | 19.09.2013 | 1
3  | Dinner | 22.09.2013 | 2
4  | Theater| 20.09.2013 | 3
5  | Cinema | 19.09.2013 | 4

重复的意思:

如果重复为 0:不重复
如果重复为 1:拨号
如果重复为 2:每周
如果重复为 3:每月
如果重复为 4:每年


我找到了这个 sql 代码,但我做不到。我想参加接下来的 2 个活动。

SELECT E.Id, E.Name, E.StartDate, E.Repeats, A.ShowDate, DATEDIFF(E.StartDate, A.ShowDate) AS diff
FROM tally AS E, (
    SELECT DATE_ADD('2012-12-09 00:00:00',INTERVAL Repeats DAY) as ShowDate
    FROM `tally`
    WHERE (DATE_ADD('2012-12-09 00:00:00',INTERVAL Repeats DAY)<='2012-12-20 00:00:00')
    ORDER BY Id ASC
) A
WHERE MOD(DATEDIFF(E.StartDate, A.ShowDate), E.Repeats)=0
AND A.ShowDate>=E.StartDate

感谢您的帮助。

4

0 回答 0