Buenos dias, no encontré un foro excluviso para SQL, espero me puedan ayudar ...
La bronca es esta, tengo que sacar de un rango de fechas el numero de dias laborales por mes, es decir, quitando los sábados y domingos, por ejemplo:
del 5 de enero al 17 de marzo
ENERO 19 dias
FEBRERO 28 dias
MARZO 17 dias
-Este query dice: fnGetDates es una función que de un rango de fechas te saca el total de dias nada mas:
ALTER FUNCTION [dbo].[fnGetDates]
(
-- Add the parameters for the function here
@DtFrom DATETIME,
@DtTo DATETIME
)
RETURNS @DateList TABLE (Dt datetime)
AS
BEGIN
DECLARE @TotDays INT
DECLARE @CNT INT
SET @TotDays = DATEDIFF(DD,@DTFROM,@DTTO)-- [NO OF DAYS between two dates]
SET @CNT = 0
WHILE @TotDays >= @CNT -- repeat for all days
BEGIN
INSERT INTO @DateList
SELECT (@DTTO - @CNT) AS DAT
SET @CNT = @CNT + 1
END
-Este otro query saca los dias laborales pero para un rango total, es decir, del 5 de enero al 17 de marzo mandará un total de 80 dias laborales (por decir algo) pero yo necesito que me diga cuantos son por cada mes, me explico?
declare @EndDate datetime
declare @StartDate datetime
set @StartDate = '2011-02-01'
set @EndDate = '2011-02-28'
SELECT
CASE
WHEN
@StartDate != '' AND @EndDate != '' AND @StartDate < @EndDate
THEN
DATEDIFF(d,@StartDate,@EndDate)+1
- (DATEDIFF(wk,@StartDate,@EndDate) + CASE WHEN DATEPART(dw,@StartDate)=1 then 1 else 0 End )
- (DATEDIFF(wk,@StartDate,@EndDate) + CASE WHEN DATEPART(dw,@EndDate)=7 then 1 else 0 End )
ELSE
0
END
AS totaldays1
No encuentro la manera de combinar esos archivos para obtener el resultado que necesitode. O si existe otra manera de hacer lo que necesito por favor alguien que me pueda ayudar...
Muchas gracias, saludos cordiales