SELECT * FROM entries WHERE (num_repeat = -1) OR (num_repeat =0 AND date_end >= '2006-09-29') OR (num_repeat > 0 AND skip_days > 0 AND DATEADD( begin_date, INTERVAL skip_days - 1 DAY ) >= '2006-09-29') OR (num_repeat > 0 AND skip_days = 0 AND DATEADD( begin_date, INTERVAL skip_months - 1 MONTH ) >= '2006-09-29')