2011-01-19 54 views
0

我有一個問題,我的查詢工作不正常提醒重複事件

SELECT * FROM a LEFT JOIN b on a.eid = b.id LEFT JOIN c ON a.cid = c.id WHERE DAYOFYEAR(a.start) BETWEEN :startdate_day_of_year AND :enddate_day_of_year AND :year BETWEEN a.start AND a.end

:startdate_day_of_year和:enddate_day_of_year從用戶輸入傳遞... 1-365 :今年從傳遞用戶輸入... 2011

問題是,一個事件可能每年都會發生(即:事件在2008年開始,並通過2012年)。它必須顯示每年的事件...

當我已經添加表c的混合我開始得到有限的結果...如果我用固定日期而不是dayofyear和年份開始取代where部分它開始工作的方式應該......但我無法獲得經常性事件。

Thannk you! BR

回答

0

經常性事件與非經常性事件相當不同。如果經常性事件有例如開始的一年和結束的一年,我會爲循環事件設置一個單獨的表格。

否則,我就會有一個布爾列is_yearly_event,如果沒有設置是隻檢查一年: ...AND (a.is_yearly_event != 0 OR :year BETWEEN a.start AND a.end)

+0

嗨,這不是一個選項...表是因爲他們是... – Mission 2011-01-20 09:44:41