SQL para retornar o número de dias úteis entre 2 passados ​​em datas

Eu preciso escrever uma consulta SQL que retorna o número de dias úteis (segunda a sexta-feira) entre duas datas dadas.

Eu queria saber qual seria a maneira mais eficiente de fazer isso?

SELECT           --Start with total number of days including weekends             
(DATEDIFF(dd,@StartDate,@EndDate)+1) --Subtact 2 days for each full weekend 
(DATEDIFF(wk,@StartDate,@EndDate)*2) --If StartDate is a Sunday, Subtract 1          
ELSE 0               END)            --If EndDate is a Saturday, Subtract 1 
FROM dual

Então, também seria útil poder remover feriados dessa contagem, como dia de natal e dia de boxe.

Alguma ideia?

questionAnswers(6)

yourAnswerToTheQuestion