Para obter o último dia do mês considerando apenas dias úteis da semana, execute:
DECLARE @dataHoraAtual DATETIME = GETDATE(); DECLARE @ultimoDiaDoMes DATETIME = DATEADD(DD, -DAY(DATEADD(M, 1, @dataHoraAtual)), DATEADD(M, 1, @dataHoraAtual)); SELECT DATEADD(DAY, CASE DATENAME(WEEKDAY, @ultimoDiaDoMes) WHEN 'Sunday' THEN -2 WHEN 'Saturday' THEN -1 ELSE -0 END, DATEDIFF(DAY, 0, @ultimoDiaDoMes))
Espero ter ajudado!
Até a próxima