Мы платим два раза в месяц. Периоды оплаты: 1-15 и 16 марта.Таким образом, конец периода оплаты может закончиться в любой день.
Мы платим сверхурочно по понедельникам - воскресеньям в течение 40 часов.
Если период оплаты заканчивается в субботу и у сотрудника есть 47 часовмы платим 7 часов за этот чек .. если работник работает в воскресенье, и теперь общее количество часов за неделю, скажем, 52 ... мы бы заплатили 5 часов за следующий чек. Сейчас это процесс расчета вручную.
Я пытаюсь обдумать, как написать запрос для получения дополнительного переноса.
Вот вывод итогов ежедневной работы за мой последний период оплаты 9 /С 1 января 2009 года по 15 сентября 2009 года, так как 1-е число было в воскресенье. Мне нужно рассчитать OT для недели с 26.08.2009.На этого конкретного сотрудника он работает по вызову в выходные дни.Ему заплатили 6,28 часов сверхурочной работы за период с 16 августа 2009 года по 31 августа 2009 года, он работал два дополнительных часа 1 сентября 2009 года, поэтому 2 часа ОТ должны быть перенесены на 9 сентября.С 2019 по 15.09.2009.
ID HRS WK CDATE
STU02 8.16 35 2019-08-26 00:00:00.000
STU02 9.37 35 2019-08-27 00:00:00.000
STU02 9.07 35 2019-08-28 00:00:00.000
STU02 7.91 35 2019-08-29 00:00:00.000
STU02 9.12 35 2019-08-30 00:00:00.000
STU02 2.65 35 2019-08-31 00:00:00.000
STU02 2.00 35 2019-09-01 00:00:00.000
STU02 4.17 36 2019-09-02 00:00:00.000
STU02 9.40 36 2019-09-03 00:00:00.000
STU02 8.80 36 2019-09-04 00:00:00.000
STU02 8.90 36 2019-09-05 00:00:00.000
STU02 8.93 36 2019-09-06 00:00:00.000
STU02 2.56 36 2019-09-07 00:00:00.000
STU02 2.00 36 2019-09-08 00:00:00.000
STU02 8.66 37 2019-09-09 00:00:00.000
STU02 9.14 37 2019-09-10 00:00:00.000
STU02 9.07 37 2019-09-11 00:00:00.000
STU02 9.29 37 2019-09-12 00:00:00.000
STU02 9.94 37 2019-09-13 00:00:00.000
STU02 2.00 37 2019-09-15 00:00:00.000
Я ценю любую помощь, которая сводит меня с ума из-за множества разных вещей, которые я пробовал.
** ОБНОВЛЕНИЕ С ТАБЛИЦЕЙ И ДАННЫМИ **
/****** Object: Table [dbo].[DLI_TEST_DATE] Script Date: 9/18/2019 3:50:50 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DLI_TEST_DATE](
[EMPLOYEE_ID] [nvarchar](15) NULL,
[REG_TOTAL] [float] NULL,
[WEEK_NUM] [int] NULL,
[CDATE] [datetime] NULL,
[DAYOFWK] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 2, 35, CAST(N'2019-08-25 00:00:00.000' AS DateTime), 1)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 8.16, 35, CAST(N'2019-08-26 00:00:00.000' AS DateTime), 2)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.37, 35, CAST(N'2019-08-27 00:00:00.000' AS DateTime), 3)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.07, 35, CAST(N'2019-08-28 00:00:00.000' AS DateTime), 4)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 7.91, 35, CAST(N'2019-08-29 00:00:00.000' AS DateTime), 5)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.12, 35, CAST(N'2019-08-30 00:00:00.000' AS DateTime), 6)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 2.65, 35, CAST(N'2019-08-31 00:00:00.000' AS DateTime), 7)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 2, 36, CAST(N'2019-09-01 00:00:00.000' AS DateTime), 1)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 4.17, 36, CAST(N'2019-09-02 00:00:00.000' AS DateTime), 2)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.4, 36, CAST(N'2019-09-03 00:00:00.000' AS DateTime), 3)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 8.8, 36, CAST(N'2019-09-04 00:00:00.000' AS DateTime), 4)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 8.9, 36, CAST(N'2019-09-05 00:00:00.000' AS DateTime), 5)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 8.93, 36, CAST(N'2019-09-06 00:00:00.000' AS DateTime), 6)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 2.56, 36, CAST(N'2019-09-07 00:00:00.000' AS DateTime), 7)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 2, 37, CAST(N'2019-09-08 00:00:00.000' AS DateTime), 1)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 8.66, 37, CAST(N'2019-09-09 00:00:00.000' AS DateTime), 2)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.14, 37, CAST(N'2019-09-10 00:00:00.000' AS DateTime), 3)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.07, 37, CAST(N'2019-09-11 00:00:00.000' AS DateTime), 4)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.29, 37, CAST(N'2019-09-12 00:00:00.000' AS DateTime), 5)
GO
INSERT [dbo].[DLI_TEST_DATE] ([EMPLOYEE_ID], [REG_TOTAL], [WEEK_NUM], [CDATE], [DAYOFWK]) VALUES (N'STU02', 9.94, 37, CAST(N'2019-09-13 00:00:00.000' AS DateTime), 6)
GO