Might be a good time to think about using a calendar tables.
My calendar table has these fields:
CREATE TABLE Calendar" & _
(calendar_date DATETIME NOT NULL PRIMARY KEY,_
weekday_nbr INTEGER NOT NULL,
weekday_name VARCHAR (10) NOT NULL,
work_day INTEGER DEFAULT 1 NOT NULL,
workday_nbr INTEGER NULL,
holiday INTEGER DEFAULT 0 NOT NULL,
"holiday_name VARCHAR (50) NULL);"
So the parameter query is:
Query: WednesdaysBetween
PARAMETERS from_date DateTime, to_date DateTime;
SELECT COUNT(* ) AS WednesdayCount
FROM Calendar AS c
HAVING c.weekday_nbr = 4
AND c.calendar_date BETWEEN [from_date]
AND [to_date];
Query: WorkdaysBetween
PARAMETERS from_date DateTime, to_date DateTime;
SELECT (c2.workday_nbr - c1.workday_nbr) AS Workdays
FROM Calendar AS C1,
Calendar AS c2
WHERE (((c1.calendar_date) = [from_date])
AND ((c2.calendar_date) = [to_date]));
Query: WorkdateOffest
PARAMETERS base_date DateTime, off_set Short;
SELECT c2.calendar_date
FROM Calendar AS c1,
Calendar AS c2
WHERE (((c1.calendar_date) = [base_date])
AND ((c2.workday_nbr - c1.workday_nbr) = [off_set]))
GROUP BY c2.calendar_date;