Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.80 KB | None | 0 0
  1. USE [new_db]
  2. GO
  3. /****** Object:  UserDefinedFunction [dbo].[sfGetHouseWorkedPriorBankHolidayDate]    Script Date: 2/18/2020 10:11:21 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].[sfGetHouseWorkedPriorBankHolidayDate]
  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.         RETURN
  25.         (SELECT
  26.             SUM(HoursWorked)
  27.         FROM
  28.             (SELECT
  29.                 (SELECT
  30.                     (ISNULL(SUM(dbo.sfMinutesGet(T1.DateTimeStart,T1.DateTimeEnd) - dbo.sfStocktakeUserTimesheetBreaks(T1.StockTakeUserTimesheetId, 0)),0) / CONVERT(DECIMAL(12,2),60))                
  31.                 FROM tblStockTakeUserTimesheets AS T1
  32.                     INNER JOIN tblStockTakeUsers STU1   ON  T1.StockTakeUserId = STU1.StockTakeUserId
  33.                 WHERE
  34.                     STU1.UserId=@ParUserId
  35.                     AND T1.DateTimeStart BETWEEN DATEADD(week, -13,  DATEADD(DAY,-1,bhd.BankHolidayDayDate)) AND bhd.BankHolidayDayDate) AS 'HoursWorked'
  36.             --into #TempTable
  37.             FROM
  38.                 tblBankHolidayDay bhd
  39.             WHERE
  40.                 bhd.BankHolidayDayDate BETWEEN @ParDateStart AND @ParDateEnd
  41.                 AND (SELECT
  42.                         (ISNULL(SUM(dbo.sfMinutesGet(T1.DateTimeStart,T1.DateTimeEnd) - dbo.sfStocktakeUserTimesheetBreaks(T1.StockTakeUserTimesheetId, 0)),0) / CONVERT(DECIMAL(12,2),60))                    
  43.                     FROM tblStockTakeUserTimesheets AS T1
  44.                         INNER JOIN tblStockTakeUsers STU1   ON  T1.StockTakeUserId = STU1.StockTakeUserId
  45.                     WHERE
  46.                         STU1.UserId=@ParUserId
  47.                         AND T1.DateTimeStart BETWEEN DATEADD(week, -5,  DATEADD(DAY,-1,bhd.BankHolidayDayDate)) AND bhd.BankHolidayDayDate) >= CONVERT(DECIMAL(12,2),40)) TT)  
  48.  
  49. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement