$oSelect->where("weekno <= ?", $iEndWeekNo);
$oSelect->where("year = ?", $iEndYear);
$oSelect->where("day = ?", $day);
//(weekno <= ? and year = ? and day=?)
$oCond1 = $oSelect->getPart(Zend_Db_Select::WHERE);
$oSelect->reset(Zend_Db_Select::WHERE);
$oSelect->where("year < ?", $iEndYear);
$oSelect->where("day = ?", $day);
//year < ? and day = ?
$oCond2 = $oSelect->getPart(Zend_Db_Select::WHERE);
$oSelect->reset(Zend_Db_Select::WHERE);
//(weekno <= ? and year = ? and day=?) or (year < ? and day = ?)
$oSelect->where(implode(" ", $oCond1));
$oSelect->orWhere(implode(" ", $oCond2));
$oMixCond = $oSelect->getPart(Zend_Db_Select::WHERE);
$oSelect->reset(Zend_Db_Select::WHERE);
groupid=? and ((weekno <= ? and year = ? and day=?) or (year < ? and day = ?))
$oSelect->where("groupid=?", $groupid);
$oSelect->where(implode(" ", $oMixCond));