У меня есть три таблицы в моей базе данных.Временная сумма подобных сотрудников в запросе SQL Server
Первая таблица Employee
:
Вторая таблица EmployeeTimeIn
: (HoursConsumed есть время в секундах!)
Третья таблица EmployeeTimeOut
:
Я написал следующий SQL запрос, который содержит список всех сотрудников, сгруппированных по их идентификаторам и рабочего времени каждый раз, когда в сессии:
select
v.EID, e.EmployeeName, v.Time_In, v.Time_Out,
convert(varchar(5), SUM(v.HoursConsumed)/3600) + ':' +
convert(varchar(5), SUM(v.HoursConsumed) % 3600/60) + ':' +
convert(varchar(5), (SUM(v.HoursConsumed) % 60)) as workingtime,
v.Date_Ref
from
(select
e1.EID, e1.Time_In, e2.Time_Out, e1.HoursConsumed,
CONVERT(VARCHAR(10), e1.Date_Ref, 111) as Date_Ref
from EmployeeTimeIn as e1, EmployeeTimeOut as e2
where e1.Refid = e2.Refid) as v, Employee as e
where v.EID = e.EmployeeID
group by
v.EID, e.EmployeeName, v.Time_In, v.Time_Out, v.HoursConsumed, v.Date_Ref;
Он производит следующий вывод:
Мне нужно изменить этот запрос, чтобы каждый сотрудник показывал общее общее время работы в столбце workingtime
. В этом случае он отобразит workingtime
из 0:41:53 для EID 4 и 0: 0: 39 для EID 200.
Просьба сообщить.
(Примечание: окончательный вывод должен иметь три строки для этого примера данных, так как мне нужно, чтобы показать время В и Time Out поле в итоговой таблице тоже!)
Пожалуйста, используйте явное JOIN и вместо «таблицы, таблицы» синтаксиса. – pilcrow
Hi @Nida Sulheri Я столкнулся с той же проблемой. Можете ли вы предоставить мне структуру таблицы или использовать ее, мне нужно реализовать ту же логику в моем проекте. С уважением –
@ A.Goutam Структуры таблиц указаны в моем вышеприведенном сообщении ... Пожалуйста, обратитесь к скриншотам таблиц. – Azeem