首页  ·  知识 ·  数据库
打印显示考勤统计时间的存储过程
佚名  http://hi.baidu.com/qzrc/blog/  MS-SQL  编辑:dezai  图片来源:网络
Create ProceDure GetPrtHour@Month Varchar(50), --月份@SecNo Varchar(50), --部门编号@WokNo varchar(50), 
Create ProceDure GetPrtHour
@Month  Varchar(50),  --月份
@SecNo  Varchar(50),  --部门编号
@WokNo  varchar(50),  --职工号
@Name   Varchar(50),   --姓名
@Int    int           --显示第几个  
as
Declare @SQL Varchar(8000)   --用来存放SQL语句
Declare @Max int      --定义每次显示员工的最大个数
Set @Max = 20 
create table #Tmp4  --创建临时表#Tmp
(
    ID   int IDENTITY (1,1)     not null, --创建列ID,并且每次新增一条记录就会加1
    Month      varchar(50),  
    SecNo      Varchar(50),
    WokNo      Varchar(50)
    primary key (ID)      --定义ID为临时表#Tmp的主键     
);
Set @SQL = 'Insert Into #Tmp4(Month,SecNo,WokNo) Select Distinct Month,SecNo,WokNo
            from AttPrt Where Month = ' +  '''' + @Month + '''' + ' And SecNo = ' + '''' + @SecNo + ''''
if @WokNo is not null
   Set @SQL = @SQL + ' And WokNo = ' + '''' + @WokNo + ''''
if @Name is not null
   Set @SQL = @SQL + ' And Name = '  + '''' + @Name + ''''
Set @SQL = @SQL + ' Order by Month,SecNo,WokNo'
Exec (@SQL)
Set @SQl = 'Select Distinct a.Month,a.WokNo,b.Name,b.SecNo,a.NorTotalHour,a.TotalHour,
            a.OveTotalHour,a.leaTotalHour From TmpTotalHour as a inner join AttPrt as b
            on a.WokNo = b.WokNo Where a.Month = ' + '''' + @Month + '''' +
            ' And b.SecNo = ' + '''' + @SecNo + ''''
if @WokNo is not null
   Set @SQL = @SQL + ' and a.WokNo = ' + '''' + @WokNo + ''''
if @Name is not null
   Set @SQL = @SQL + ' and b.Name = '  + '''' + @Name + ''''
Set @SQL = @SQL + ' And a.WokNo in (Select Top ' +  Str(@Max,len(@Max)) + ' WokNo From #Tmp4
           Where ID not in (Select top ' + Str((@Int - 1) * @Max,len((@Int - 1) * @Max)) + ' ID From #Tmp4)) '
Set @SQL = @SQL + ' Order by a.Month,b.SecNo,a.WokNo'
Exec (@SQL)
Drop table #Tmp4
GO
本文作者:佚名 来源:http://hi.baidu.com/qzrc/blog/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读