akhter86 Ответов: 0

Регистрация посещаемости для сотрудника ?


I want this report of employee register.
 
 Date	1 	 2	 3  4  Total  Absent    Present	 Leave 
 

 Emp1	 A	 P	 P  PL   4      1	   2	   1
 Empi	 P	 A	 P  P    4      1	   3	   0 


у меня есть два стола

один сотрудник посещаемости (empid в,Интайм,OUTTIME,ReportingDate,статус)
второй-оставляет работника (empid в,LeaveType(ПЛ,КЛ,СЛ),начальная дата,Endate,Noofday)

Что я уже пробовал:

First query is getting total of Present,Absent,HD,TDay in Employee Attendance table


SELECT SUM(CASE WHEN status = 'P' THEN 1  
WHEN status = 'HD' THEN 0.5 WHEN status = 'A' THEN 0 END) AS [T.P],  
SUM(CASE WHEN status = 'A' THEN 1 WHEN status = 'HD' THEN 0.5 END) AS [A],  
SUM(CASE WHEN status = 'P' THEN 1  
WHEN status = 'HD' THEN 1 WHEN status = 'A' THEN 1 END) AS [TDay ]  
FROM EmployeesAttendance  
--WHERE (ReportingDate BETWEEN @StartDate AND @Enddate)  
GROUP BY EmpID 


Второй запрос-сводная таблица,преобразующая col посещаемости сотрудников в строки.

SELECT DISTINCT ReportingDate INTO #Dates  
FROM EmployeesAttendance  
ORDER BY ReportingDate  
DECLARE @cols NVARCHAR(4000)  
SELECT @cols = COALESCE(@cols + ',[' + CONVERT(varchar, DATEPART(DAY, ReportingDate), 112)  
+ ']','[' + CONVERT(varchar,DATEPART(DAY, ReportingDate), 112) + ']')  
FROM #Dates  
ORDER BY ReportingDate  
DECLARE @qry NVARCHAR(4000) =  
N'SELECT *  
FROM (SElECT EmployeeDetails.EmpID,EmployeeDetails.EmpName,EmployeesAttendance.Status,  
DATEPART(DAY, EmployeesAttendance.ReportingDate)as DDate  
FROM EmployeesAttendance Inner Join EmployeeDetails on EmployeesAttendance.EmpID=EmployeeDetails.Empid )  
emp  
PIVOT (MAX(Status) FOR DDate IN (' + @cols + ')) AS stat  
'  
-- Executing the query  
EXEC(@qry)



но мне нужен тот формат, о котором я говорил выше.пожалуйста, направьте спасибо....

OriginalGriff

И что же?
А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?

akhter86

я хочу упомянуть тип отпуска(PL,CL,SL) в регистре посещаемости ,я создал отдельную таблицу отпусков сотрудников ,здесь я застрял, как эта таблица будет объединяться в посещаемость сотрудников.

OriginalGriff

И что же?
Что вы - вы сами, а не я или ваши одноклассники - пробовали? Что случилось, когда вы это сделали?

akhter86

хммм

CHill60

Вы и этот член клуба Участник 12314309 - Профиль Специалиста[^] одно и то же? Если это так, Пожалуйста, прекратите публиковать вопросы в обоих профилях.
Если нет, то поймите, что ваш наставник заметит, что вы скопировали работу друг друга.
В любом случае, прислушайтесь к Совету Мадмыча. Как сотрудник покидает день, указанный в реестре посещаемости[^] (@SLFC-Mike)

Gerry Schmitz

Сбросьте записи с первого выбора, чтобы увидеть, получаете ли вы то, что ожидаете.

0 Ответов