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
 | |||
|  | 
 | |||
|  | 
 |