首页 > 代码库 > 利用存储过程进行组合查询

利用存储过程进行组合查询

利用存储过程进行组合查询

/*********************************************************************/ 
/* proc name : P_am_postjob_search */ 
/* */ 
/* Description: 申请单查询 */ 
/* */ 
/* parameters: @searchtime 申请时间 */ 
/* @search_poststatus 发布状态 */ 
/* @search_applystatus 招聘状态 */ 
/* @job_name 职位名 */ 
/* @Re_deptid 申请部门 */ 
/* date: 2003/11/5 */ 
/* */ 
/* author: hnsoso@sina.com */ 
/* */ 
/* history: */ 
/*********************************************************************/

create proc P_am_postjob_search 

@searchtime varchar(5), 
@search_poststatus char(1), 
@search_applystatus char(1), 
@job_name varchar(50), 
@Re_deptid varchar(20) 

as


declare @m_strSqlsearchtime varchar(255) 
declare @m_strSqlpoststatus varchar(255) --Sql语句的条件部分 
declare @m_strSqlapplystatus varchar(255) --Sql语句的条件部分 
declare @m_strSqljob_name varchar(255) --Sql语句的条件部分 
declare @m_strSqlRe_deptid varchar(255) --Sql语句的条件部分


select @m_strSqlsearchtime= case 
when @searchtime=‘0‘ then /*申请时间*/ 
‘select Re_NO,post_id,job_name,Re_num,Re_deptid,Re_applydate,job_poststatus,job_posttype,job_posttype,job_applystatus from am_postjob where 1=1‘ 
else 
‘select Re_NO,post_id,job_name,Re_num,Re_deptid,Re_applydate,job_poststatus,job_posttype,job_posttype,job_applystatus from am_postjob where ‘+@searchtime+‘>datediff(dd,Re_applydate,getdate())‘ 
end

select @m_strSqlpoststatus= case 
when @search_poststatus<>‘n‘ /*发布状态*/ 
then ‘ and job_poststatus=‘‘‘+@search_poststatus+‘‘‘‘ 
else ‘‘ 
end 
select @m_strSqlapplystatus= case 
when @search_applystatus<>‘n‘ /*招聘状态*/ 
then ‘ and job_applystatus=‘‘‘+@search_poststatus+‘‘‘‘ 
else 
‘‘ 
end 
select @m_strSqljob_name= case 
when @job_name<>‘‘ /*职位关键字*/ 
then ‘ and job_name like ‘‘%‘+@job_name+‘%‘‘‘ 
else 
‘‘ 
end 
select @m_strSqlRe_deptid 
= case 
when @Re_deptid<>‘‘ /*申请部门ID*/ 
then ‘ and Re_deptid=‘‘‘+@Re_deptid+‘‘‘‘ 
else 
‘‘ 
end 
exec ( @m_strSqlsearchtime + @m_strSqlpoststatus + @m_strSqlapplystatus + @m_strSqljob_name + @m_strSqlRe_deptid +‘order by post_id asc‘)