40 lines
1.6 KiB
MySQL
40 lines
1.6 KiB
MySQL
|
ALTER PROC [dbo].[spInOutManHoursReport]
|
|||
|
@projectId NVARCHAR(50),
|
|||
|
@unitId NVARCHAR(max)= NULL,
|
|||
|
@postId NVARCHAR(max)= NULL,
|
|||
|
@startTime DATETIME = NULL,
|
|||
|
@endTime DATETIME = NULL
|
|||
|
AS
|
|||
|
/*****************<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>****************/
|
|||
|
SELECT CAST(NEWID() AS NVARCHAR(100)) AS ID
|
|||
|
,T.ProjectId
|
|||
|
,T.UnitId
|
|||
|
,ISNULL((case when T.UnitId=''then null
|
|||
|
else (case when u.ShortUnitName IS NOT NULL THEN u.ShortUnitName ELSE u.UnitName END) end),'δ֪') AS UnitName
|
|||
|
,ISNULL((case when T.UnitId=''then null
|
|||
|
else u.UnitName end),'δ֪') AS AllUnitName
|
|||
|
,T.PostId
|
|||
|
,ISNULL((case when W.WorkPostName=''then null else W.WorkPostName end),'δ֪') AS PostName
|
|||
|
,SUM(ISNULL(ManHours,0)) AS ManHoursSum
|
|||
|
,COUNT(T.NewID) AS ManCountSum
|
|||
|
,(SELECT COUNT(PersonId) FROM SitePerson_Person
|
|||
|
WHERE ProjectId = T.ProjectId AND T.UnitId=UnitId AND T.PostId=WorkPostId AND IsUsed=1 AND OutTime IS NOT NULL
|
|||
|
group by ProjectId,UnitId,WorkPostId) AS PersonCountSum
|
|||
|
FROM dbo.t_d_EmployInOutRecord AS T
|
|||
|
--LEFT JOIN dbo.SitePerson_Person AS P ON T.ProjectId=P.ProjectId AND T.IDCardNo=P.IdentityCard
|
|||
|
LEFT JOIN dbo.Base_Unit AS U ON T.UnitId=U.UnitId
|
|||
|
--LEFT JOIN dbo.ProjectData_TeamGroup AS Team ON P.TeamGroupId=Team.TeamGroupId
|
|||
|
LEFT JOIN dbo.Base_WorkPost AS W ON T.PostId=W.WorkPostId
|
|||
|
WHERE T.ProjectId = @ProjectId
|
|||
|
AND (RecordDate >= @startTime OR @startTime IS NULL)
|
|||
|
AND (RecordDate <= @endTime OR @endTime IS NULL)
|
|||
|
AND (@unitId like '%'+T.UnitId+'%' OR @unitId IS NULL)
|
|||
|
AND (@postId like '%'+T.PostId+'%' OR @postId IS NULL)
|
|||
|
GROUP BY T.ProjectId,T.UnitId,U.UnitName,u.ShortUnitName,T.PostId,W.WorkPostName
|
|||
|
|
|||
|
|
|||
|
|
|||
|
GO
|
|||
|
|
|||
|
|