Create PROCEDURE [dbo].[SpGetHsseKq] @ProjectId nvarchar(50),/*表名*/ @startTime nvarchar(50),/*开始时间*/ @endTime nvarchar(50),/*结束时间*/ @UnitId nvarchar(50),/*0没有单位 1分包商 2五环*/ @returnVal int output AS /*获取安全月报考勤数据*/ declare @sql nvarchar(500), @kqcount int; IF(@UnitId='0') BEGIN select @returnVal=count(*) from ( select IdentityCard FROM SitePerson_Checking WHERE PROJECTID=''+@ProjectId+'' AND IntoOut='1' AND IntoOutTime>=''+@startTime+'' AND IntoOutTime<=''+@endTime+'' Group by IdentityCard,CONVERT(varchar(100), IntoOutTime, 23) )f; --select @sql= N' SELECT @kqcount= count(*) from (select IdentityCard FROM SitePerson_Checking WHERE PROJECTID='''+@ProjectId+''' AND IntoOut=''1'' -- AND IntoOutTime>='''+@startTime+''' AND IntoOutTime<='''+@endTime+''' Group by IdentityCard,CONVERT(varchar(100), IntoOutTime, 23))f --'; --EXEC sp_executesql @sql, N'@kqcount int OUTPUT', @kqcount OUTPUT ; --set @returnVal=@kqcount; END else begin if(@UnitId='1') begin select @returnVal=count(*) from ( select IdentityCard FROM SitePerson_Checking WHERE PROJECTID=''+@ProjectId+'' AND IntoOut='1' AND IntoOutTime>=''+@startTime+'' AND IntoOutTime<=''+@endTime+'' and UnitId<>'6d29ed79-e20a-4c19-bb91-d280ea2e442e' Group by IdentityCard,CONVERT(varchar(100), IntoOutTime, 23) )f; end else begin select @returnVal=count(*) from ( select IdentityCard FROM SitePerson_Checking WHERE PROJECTID=''+@ProjectId+'' AND IntoOut='1' AND IntoOutTime>=''+@startTime+'' AND IntoOutTime<=''+@endTime+'' and UnitId='6d29ed79-e20a-4c19-bb91-d280ea2e442e' Group by IdentityCard,CONVERT(varchar(100), IntoOutTime, 23) )f; end end