xinjiang/DataBase/版本日志/SGGLDB_V2023-07-01.sql

34 lines
2.9 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.


ALTER PROC [dbo].[spInOutManHoursReport]
@projectId NVARCHAR(50),
@unitId NVARCHAR(max)= NULL,
@postId NVARCHAR(max)= NULL,
@startTime DATETIME = NULL,
@endTime DATETIME = NULL
AS
/*****************单位考勤****************/
SELECT CAST(NEWID() AS NVARCHAR(100)) AS ID
,T.ProjectId
,p.UnitId
,ISNULL((case when u.UnitName=''then null else u.UnitName end),'未知') AS UnitName
,p.WorkPostId as PostId
,ISNULL((case when W.WorkPostName=''then null else W.WorkPostName end),'未知') AS PostName
,SUM(ISNULL(ManHours,0)) AS ManHoursSum
,COUNT( IDCardNo) AS ManCountSum
,(SELECT COUNT(PersonId) FROM SitePerson_Person
WHERE ProjectId = T.ProjectId AND P.UnitId=UnitId AND P.WorkPostId=WorkPostId AND IsUsed=1
group by ProjectId,UnitId,WorkPostId) AS PersonCountSum
FROM dbo.t_d_EmployInOutRecord AS T
LEFT JOIN dbo.SitePerson_Person AS P ON P.ProjectId=T.ProjectId AND T.IDCardNo=P.IdentityCard
LEFT JOIN dbo.Base_Unit AS U ON P.UnitId=U.UnitId
LEFT JOIN dbo.ProjectData_TeamGroup AS Team ON P.TeamGroupId=Team.TeamGroupId
LEFT JOIN dbo.Base_WorkPost AS W ON P.WorkPostId=W.WorkPostId
WHERE T.ProjectId = @ProjectId
AND (RecordDate >= @startTime OR @startTime IS NULL)
AND (RecordDate <= @endTime OR @endTime IS NULL)
AND (@unitId like '%'+P.UnitId+'%' OR @unitId IS NULL)
AND (@postId like '%'+P.WorkPostId+'%' OR @postId IS NULL)
GROUP BY T.ProjectId,P.UnitId,U.UnitName,P.WorkPostId,W.WorkPostName