using subquery how can i calculate working days in a month?
Answer Posted / lekurwale
U can caculate By creating the following function in SQL
server :
CREATE FUNCTION dbo.GetWorkingDays
( @StartDate datetime,
@EndDate datetime )
RETURNS INT
AS
BEGIN
DECLARE @WorkDays int, @FirstPart int
DECLARE @FirstNum int, @TotalDays int
DECLARE @LastNum int, @LastPart int
IF (DATEDIFF(day, @StartDate, @EndDate) < 2)
BEGIN
RETURN ( 0 )
END
SELECT
@TotalDays = DATEDIFF(day, @StartDate, @EndDate) - 1,
@FirstPart = CASE DATENAME(weekday, @StartDate)
WHEN 'Sunday' THEN 6
WHEN 'Monday' THEN 5
WHEN 'Tuesday' THEN 4
WHEN 'Wednesday' THEN 3
WHEN 'Thursday' THEN 2
WHEN 'Friday' THEN 1
WHEN 'Saturday' THEN 0
END,
@FirstNum = CASE DATENAME(weekday, @StartDate)
WHEN 'Sunday' THEN 5
WHEN 'Monday' THEN 4
WHEN 'Tuesday' THEN 3
WHEN 'Wednesday' THEN 2
WHEN 'Thursday' THEN 1
WHEN 'Friday' THEN 0
WHEN 'Saturday' THEN 0
END
IF (@TotalDays < @FirstPart)
BEGIN
SELECT @WorkDays = @TotalDays
END
ELSE
BEGIN
SELECT @WorkDays = (@TotalDays - @FirstPart) / 7
SELECT @LastPart = (@TotalDays - @FirstPart) % 7
SELECT @LastNum = CASE
WHEN (@LastPart < 7) AND (@LastPart > 0) THEN
@LastPart - 1
ELSE 0
END
SELECT @WorkDays = @WorkDays * 5 + @FirstNum +
@LastNum
END
RETURN ( @WorkDays )
END
Is This Answer Correct ? | 6 Yes | 7 No |
Post New Answer View All Answers
Can we join same table in sql?
Is there a way to automate sql execution from the command-line, batch job or shell script?
What is a schema sql?
What is multiple partition?
What is pivot table in sql?
what is foreign key? : Sql dba
What are the properties of a transaction?
How do you pronounce sql?
What is the location of pre_defined_functions.
how to see the create table statement of an existing table? : Sql dba
What is range partitioning?
What is loop in pl sql?
What is a sql select statement?
Can we join more than 2 tables in sql?
Are there any features that are decommissioned in 11g that are not present in 11g?