37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
| 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
 | |
| ,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
 | |
| 	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
 | |
| 
 | |
| 
 | |
| 
 | |
| GO
 | |
| 
 | |
| 
 |