Sql server 我用自己的方式尝试了这个查询,但没有看到你的,也没有复制/粘贴回来。正如OP所提到的,在guy的帮助下开发的查询是我为您的信息检查而开发的。创建函数的语法在任何地方都是相同的。不会因用户而异。很明显,这看起来很相似。请理解。盲目地投反对票是没有任何意义的。

Sql server 我用自己的方式尝试了这个查询,但没有看到你的,也没有复制/粘贴回来。正如OP所提到的,在guy的帮助下开发的查询是我为您的信息检查而开发的。创建函数的语法在任何地方都是相同的。不会因用户而异。很明显,这看起来很相似。请理解。盲目地投反对票是没有任何意义的。,sql-server,Sql Server,我用自己的方式尝试了这个查询,但没有看到你的,也没有复制/粘贴回来。正如OP所提到的,在guy的帮助下开发的查询是我为您的信息检查而开发的。创建函数的语法在任何地方都是相同的。不会因用户而异。很明显,这看起来很相似。请理解。盲目地投反对票是没有任何意义的。希望你能理解。Thanks@DoonieDarkoo如果你达到了你的期望,接受答案,回报我们。很高兴能帮助你。快乐编码-:)是的,我做了,谢谢你。另外,我已经对上一篇文章发表了评论,请检查我的答案和你的答案有什么区别?是的,它也有效。我现在知道


我用自己的方式尝试了这个查询,但没有看到你的,也没有复制/粘贴回来。正如OP所提到的,在guy的帮助下开发的
查询
是我为您的信息检查而开发的。创建函数的语法在任何地方都是相同的。不会因用户而异。很明显,这看起来很相似。请理解。盲目地投反对票是没有任何意义的。希望你能理解。Thanks@DoonieDarkoo如果你达到了你的期望,接受答案,回报我们。很高兴能帮助你。快乐编码-:)是的,我做了,谢谢你。另外,我已经对上一篇文章发表了评论,请检查我的答案和你的答案有什么区别?是的,它也有效。我现在知道我错在哪里了。再次感谢你为什么否决投票。我用自己的方式尝试了这个查询,但没有看到你的,也没有复制/粘贴回来。正如OP所提到的,在guy的帮助下开发的
查询
是我为您的信息检查而开发的。创建函数的语法在任何地方都是相同的。不会因用户而异。很明显,这看起来很相似。请理解。盲目地投反对票是没有任何意义的。希望你能理解。Thanks@DoonieDarkoo如果你达到了你的期望,接受答案,回报我们。很高兴能帮助你。快乐编码-:)是的,我做了,谢谢你。另外,我已经对以前的帖子发表了评论,请检查一下
WITH CTE AS (
    SELECT @STARTDATE AS STARTDATE
    UNION ALL
    SELECT DATEADD(D,1,STARTDATE) 
    FROM CTE
    WHERE STARTDATE <@ENDDATE
),
WORKINGDAYS AS (
    SELECT STARTDATE,
           DATENAME(DW,STARTDATE)WEEKDAYS,
           C1.CalanderDayName AS isweekend
    FROM CTE c
         LEFT JOIN HRM.tbl_Calendar C1 ON DATENAME(DW,STARTDATE) = C1.CalanderDayName
                                      AND C1.IsOffDay = 1
)

SELECT COUNT(WEEKDAYS)as WORKINGDAYS
FROM WORKINGDAYS
WHERE isweekend IS NULL;
ALTER FUNCTION [dbo].[fnGetWorkingDays] (@StartDate datetime, @EndDate datetime)
RETURNS int
AS
BEGIN
     DECLARE @dateFrom datetime 
     DECLARE @dateTo datetime 
     SET @dateFrom = @StartDate 
     SET @dateTo = @EndDate

     DECLARE @WORKDAYS INT
     SELECT @WORKDAYS =

;WITH CTE AS (
SELECT @STARTDATE  AS STARTDATE
UNION ALL
select DATEADD(D,1,STARTDATE) 
FROM CTE
WHERE STARTDATE <@ENDDATE
)
,WORKINGDAYS AS (
SELECT STARTDATE,DATENAME(DW,STARTDATE)WEEKDAYS, C1.CalanderDayName AS isweekend
FROM CTE c
LEFT JOIN HRM.tbl_Calendar C1 ON DATENAME(DW,STARTDATE)=C1.CalanderDayName AND C1.IsOffDay=1
)

SELECT COUNT(WEEKDAYS)as WORKINGDAYS FROM WORKINGDAYS WHERE isweekend is null

     RETURN @WORKDAYS
END
CREATE FUNCTION [dbo].[fnGetWorkingDays] (@StartDate datetime, @EndDate datetime)
RETURNS int
AS
BEGIN        

    DECLARE @WORKDAYS INT   

    ;WITH CTE AS (
    SELECT @STARTDATE  AS STARTDATE
    UNION ALL
    select DATEADD(D,1,STARTDATE) 
    FROM CTE
    WHERE STARTDATE <@ENDDATE
    )
    ,WORKINGDAYS AS (
    SELECT STARTDATE,DATENAME(DW,STARTDATE)WEEKDAYS, C1.CalanderDayName AS isweekend
    FROM CTE c
    LEFT JOIN HRM.tbl_Calendar C1 ON DATENAME(DW,STARTDATE)=C1.CalanderDayName AND C1.IsOffDay=1
    )

    SELECT @WORKDAYS=COUNT(WEEKDAYS) FROM WORKINGDAYS WHERE isweekend is null

     RETURN @WORKDAYS
END
CREATE FUNCTION [dbo].[fnGetWorkingDays] (@StartDate datetime, @EndDate datetime)
RETURNS int
AS
BEGIN 

     DECLARE @WORKDAYS INT


;WITH CTE AS (
    SELECT @STARTDATE AS STARTDATE
    UNION ALL
    SELECT DATEADD(D,1,STARTDATE) 
    FROM CTE
    WHERE STARTDATE <@ENDDATE
),
WORKINGDAYS AS (
    SELECT STARTDATE,
           DATENAME(DW,STARTDATE)WEEKDAYS,
           C1.CalanderDayName AS isweekend
    FROM CTE c
         LEFT JOIN HRM.tbl_Calendar C1 ON DATENAME(DW,STARTDATE) = C1.CalanderDayName
                                      AND C1.IsOffDay = 1
)

SELECT @WORKDAYS=COUNT(WEEKDAYS) FROM WORKINGDAYS WHERE isweekend is null

     RETURN @WORKDAYS
END
ALTER FUNCTION [dbo].[fnGetWorkingDays]
(
    @StartDate DATETIME,
    @EndDate DATETIME
)
RETURNS INT
AS
BEGIN
    DECLARE @dateFrom DATETIME;
    DECLARE @dateTo DATETIME;
    SET @dateFrom = @StartDate;
    SET @dateTo = @EndDate;
    DECLARE @WORKDAYS INT;

    WITH CTE
    AS 
    (
       SELECT 
          @STARTDATE AS STARTDATE
       UNION ALL
       SELECT 
          DATEADD(D, 1, STARTDATE)
          FROM CTE
             WHERE STARTDATE < @ENDDATE
    ),WORKINGDAYS
    AS 
    (
       SELECT
          DATENAME(DW, STARTDATE) WEEKDAYS,
          C1.CalanderDayName AS isweekend
          FROM CTE c
             LEFT JOIN HRM.tbl_Calendar C1 
                ON DATENAME(DW, STARTDATE) = C1.CalanderDayName
                    AND C1.IsOffDay = 1
    )
    SELECT 
       @WORKDAYS = COUNT(WEEKDAYS)--Asign Variable Here
       FROM WORKINGDAYS
          WHERE isweekend IS NULL;

    RETURN @WORKDAYS;

END;