Как добавить ежедневную дату для каждого сотрудника в таблицу посещаемости ?
Я разработал процедуру с помощью Вас...теперь мне нужно руководство ,что когда я импортирую посещаемость данных сотрудника в таблицу sql, то я хочу генерировать ежедневную дату для каждого сотрудника в таблице в соответствии с диапазоном дат, хотя посещаемость во время и вне работы доступна или нет сотрудника, но дата должна генерироваться для тех сотрудников, которые находятся в статусе присоединившихся.,
Что я уже пробовал:
я попробовал тех сотрудников ,которые отсутствуют средства intime и out time не приходят, то их запись приходит с помощью right Join, но я хочу, чтобы ежедневная дата для каждого сотрудника была сгенерирована ....в связи с этим нужна ваша помощь...спасибо
<pre>;With CTE As ( select EmployeeDetails.EmpID,EmployeeDetails.EmpName,EmployeeDetails.OTEntitled,EmployeeDetails.Empcur,EmployeeDetails.Dhour,EmployeeDetails.LTime from EmployeeDetails where Empcur='Join' ) ,CTE4 As ( Select MachineAttendance.EmpID,MachineAttendance.Datetime,MachineAttendance.INOUT from MachineAttendance ) ,cte1 AS ( SELECT CTE4.EmpID, CAST(CTE4.Datetime as Date) AS [Date], CASE WHEN CTE4.INOUT = 1 THEN CTE4.DateTime END AS INOUT_INTIME, CASE WHEN CTE4.INOUT = 2 THEN CTE4.DateTime END AS INOUT_OUTTIME From CTE4 ), cte2 as ( select cte1.EmpID, Date, MAX(INOUT_INTIME) AS INTIME, MAX(INOUT_OUTTIME) AS OUTTIME , DATEDIFF(Hour, MAX(INOUT_INTIME), MAX(INOUT_OUTTIME)) as [Hours] FROM CTE1 GROUP BY EmpID, [Date] ) select cte.EmpID,cte.EmpName,cte2.Date, cte.OTEntitled,CTE.Empcur,CTE.Dhour,cte.LTime,cte2.INTIME, cte2.OUTTIME, cte2.[Hours] , CASE WHEN cte2.[Hours] >= 8 THEN 1 WHEN cte2.[Hours] = 0 THEN 0 WHEN cte2.[Hours] >= 6 THEN 0.5 END AS [Day], CASE WHEN cte2.[Hours] > CTE.Dhour then cte2.[Hours] - CTE.Dhour else 0 End as OT, CASE when cte.OTEntitled = 'Yes' AND cte2.[Hours] >= CTE.Dhour THEN (( cte2.[Hours] - 8) * 100) else 0 END AS OTAMount, -- cte2.[Hours] >= 8 -- THEN ( cte2.[Hours] - 8) * 100 else 0 END AS OTAMount, Convert(varchar(10), cte2.INTIME,108) as [Time], Case When Convert(Time, cte2.INTIME,108) > cte.LTime Then 1 else 0 end as Late from cte2 right Join cte ON cte.EmpId= cte2.EmpID order by cte2.Date asc