33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
ALTER PROC [dbo].[spInOutManHoursReport]
 | 
						|
          @projectId NVARCHAR(50),
 | 
						|
		  @unitId NVARCHAR(50)= NULL,
 | 
						|
		  @postId NVARCHAR(50)= 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=@unitId OR @unitId IS NULL)	
 | 
						|
AND (PostId=@postId OR @postId IS NULL)	
 | 
						|
GROUP BY ProjectId,UnitId,UnitName,PostId,PostName
 | 
						|
 | 
						|
 | 
						|
 | 
						|
GO
 | 
						|
 | 
						|
 |