Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.74 KB | None | 0 0
  1. USE [new_db]
  2. GO
  3. /****** Object:  UserDefinedFunction [dbo].[sfGetBankHolidayDateUser]    Script Date: 2/18/2020 10:11:07 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- =============================================
  9. -- Author:      <Author,,Name>
  10. -- Create date: <Create Date, ,>
  11. -- Description: <Description, ,>
  12. -- =============================================
  13. ALTER FUNCTION [dbo].[sfGetBankHolidayDateUser]
  14. (
  15.     @ParUserId INT,
  16.     @ParWeeksAgo INT,
  17.     @ParDateStart DATETIME,
  18.     @ParDateEnd DATETIME
  19.     --@ParPeriodName VARCHAR(100)
  20. )
  21. RETURNS DECIMAL(12,2)
  22. AS
  23. BEGIN
  24.     -- Declare the return variable here
  25.     DECLARE @BankHolidayDate DATETIME
  26.     DECLARE @StartPeriodDate DATETIME
  27.     DECLARE @EndPeriodDate DATETIME
  28.  
  29.     --Set @StartPeriodDate =
  30.     --(
  31.     --  SELECT Top 1 PeriodStart
  32.     --  FROM tblPeriods
  33.     --  WHERE PeriodName = @ParPeriodName
  34.     --)
  35.     --Set @EndPeriodDate =
  36.     --(
  37.     --  SELECT Top 1 PeriodEnd
  38.     --  FROM tblPeriods
  39.     --  WHERE PeriodName = @ParPeriodName
  40.     --)
  41.  
  42.     SET @BankHolidayDate =
  43.     (SELECT TOP 1
  44.                                         bhd.BankHolidayDayDate
  45.                                     FROM
  46.                                         tblBankHolidayDay bhd
  47.                                     WHERE
  48.                                         bhd.BankHolidayDayDate BETWEEN @ParDateStart AND @ParDateEnd
  49.                                         )
  50.     DECLARE @HW DECIMAL(12,2)
  51.     SET @HW =
  52.         (SELECT
  53.             (ISNULL(SUM(dbo.sfMinutesGet(T1.DateTimeStart,T1.DateTimeEnd) - dbo.sfStocktakeUserTimesheetBreaks(T1.StockTakeUserTimesheetId, 0)),0) / CONVERT(DECIMAL(12,2),60))
  54.             -- T.StockTakeUserId, T.StockTakeUserTimesheetId, STU.UserId
  55.             FROM tblStockTakeUserTimesheets AS T1
  56.             INNER JOIN tblStockTakeUsers STU1   ON  T1.StockTakeUserId = STU1.StockTakeUserId
  57.         WHERE STU1.UserId=@ParUserId
  58.         AND T1.DateTimeStart BETWEEN DATEADD(week, @ParWeeksAgo, @BankHolidayDate) AND @BankHolidayDate
  59.         )
  60.         RETURN @HW
  61.  
  62. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement