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 ,ProjectId ,UnitId ,ISNULL((case when UnitName=''then null else UnitName end),'δ֪') AS UnitName ,PostId ,ISNULL((case when PostName=''then null else PostName end),'δ֪') AS PostName ,SUM(ISNULL(ManHours,0)) AS ManHoursSum ,COUNT(IDCardNo) AS ManCountSum ,(SELECT COUNT(PersonId) FROM SitePerson_Person WHERE ProjectId = T.ProjectId AND T.UnitId=UnitId AND T.PostId=WorkPostId group by ProjectId,UnitId,WorkPostId) AS PersonCountSum FROM dbo.t_d_EmployInOutRecord AS T WHERE ProjectId = @ProjectId AND (RecordDate >= @startTime OR @startTime IS NULL) AND (RecordDate <= @endTime OR @endTime IS NULL) AND (@unitId like '%'+UnitId+'%' OR @unitId IS NULL) AND (@postId like '%'+PostId+'%' OR @postId IS NULL) GROUP BY ProjectId,UnitId,UnitName,PostId,PostName GO