Du vil måske prøve dette:
-
Tæl antallet af arbejdsdage (tog det fra her )
SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1)
Dette giver dig 261 arbejdsdage for 2012.
-
Nu skal du kende dine ferier, der ikke er på weekend
SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6
Resultatet af dette afhænger af dit feriebord.
-
Vi skal have det i én forespørgsel:
SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1) - (SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6)
Dette burde være det.
Rediger:Vær opmærksom på, at dette kun fungerer korrekt, hvis din slutdato er højere end din startdato.