У меня довольно длинный SQL-запрос, который я использую для того, чтобы для всех пользователей в определенном «регионе» в течение определенного месяца вычислить количество дней, которые они находились «на службе». Это разбито на выходные и будни. Вот оператор php / SQL:
$result = mysql_query("
SELECT fname, lname, MONTH( eventDate ) AS MONTH ,
SUM( IF( WEEKDAY( eventDate ) <=2, 1, 0 )
OR IF( WEEKDAY( eventDate ) = 6, 1, 0 )) AS WeekdayCount,
SUM( IF( WEEKDAY( eventDate ) = 4, 1, 0 )
OR IF( WEEKDAY( eventDate ) = 5, 1, 0 )
OR IF( WEEKDAY( eventDate ) = 3, 1, 0 )) AS WeekendCount,
SUM( IF( secondary =0, 1, 0 ) ) AS `Primary`,
SUM( IF( secondary =1, 1, 0 ) ) AS `Secondary`
FROM eventcal AS e
LEFT JOIN users AS u ON e.primary = u.username
WHERE e.region = '$region' AND MONTH( eventDate ) = '$month'
GROUP BY fname, lname, MONTH( eventDate )
ORDER BY lname
");
К сожалению, для разных регионов разные дни недели считаются выходными и буднями - как вы можете видеть выше. Поэтому воскресенье не может считаться выходным. Но это не важно здесь.
Моя проблема в том, что я хочу сказать: «Не включайте в подсчет какие-либо дни с 10 октября 2009 г. по 13 октября 2009 г.
Кто-нибудь знает, как я могу изменить этот SQL, чтобы сказать это? Или я могу написать небольшой PHP-скрипт?
Спасибо!