SQL 存储过程的分页

create procedure
--ty_exchange_search_my_projects @usercode=1500
--select * from t_user
[dbo].[ty_exchange_search_my_projects_shark]
(
@pmiUserFid int ,
@dateBegin datetime = '2005-01-01',
@dateEnd datetime = '3000-01-01',
@page_index int = 0 ,
@page_size int = 15
)
as
begin
 set @dateBegin = cast(convert(varchar(100),@dateBegin,23) + ' 00:00:00' as datetime)
 set @dateEnd = cast(convert(varchar(100),@dateEnd,23) + ' 23:59:59' as datetime)
 SET NOCOUNT ON;
    SET   ANSI_NULLS   OFF

 DECLARE @s INT SET @s = @page_index * @page_size + 1
 DECLARE @e INT SET @e = @s + @page_size
      
    select * from
   (
  SELECT c_code, c_title,c_event_desc, ROW_NUMBER() OVER ( ORDER BY c_fid ASC) AS rn
     from
 (
     SELECT a.c_code, a.c_title,a.c_event_desc,a.c_fid
  FROM dbo.syn_tu_event a inner join syn_ty_wf_ex_local_act_inst b  on a.c_wf_inst_id=b.workflow_instance_id
  WHERE b.in_date between @dateBegin and  @dateEnd and  b.receive_type_id = 100602 AND b.receive_object_id in
  (
    SELECT r.role_id FROM  syn_ty_pmi_user AS u INNER JOIN  syn_t_userRole AS r ON u.user_id = r.user_id WHERE (u.fid = @pmiUserFid)
  )
        union all
        SELECT a.c_code, a.c_title,a.c_event_desc,a.c_fid
  FROM dbo.syn_tu_event_finish a inner join syn_ty_wf_ex_local_act_inst b  on a.c_wf_inst_id=b.workflow_instance_id
  WHERE b.in_date between @dateBegin and  @dateEnd and  b.receive_type_id = 100602 AND b.receive_object_id in
  (
    SELECT r.role_id FROM  syn_ty_pmi_user AS u INNER JOIN  syn_t_userRole AS r ON u.user_id = r.user_id WHERE (u.fid = @pmiUserFid)
  )

 ) b
  ) FK where rn >= @s and rn < @e

 select count(1) as iCount from
 (
        SELECT a.c_code, a.c_title,a.c_event_desc
  FROM dbo.syn_tu_event a inner join syn_ty_wf_ex_local_act_inst b  on a.c_wf_inst_id=b.workflow_instance_id
  WHERE b.receive_type_id = 100602 AND b.receive_object_id in
  (
    SELECT r.role_id FROM  syn_ty_pmi_user AS u INNER JOIN  syn_t_userRole AS r ON u.user_id = r.user_id WHERE (u.fid = @pmiUserFid)
  )
        union all
        SELECT a.c_code, a.c_title,a.c_event_desc
  FROM dbo.syn_tu_event a inner join syn_ty_wf_ex_local_act_inst b  on a.c_wf_inst_id=b.workflow_instance_id
  WHERE b.receive_type_id = 100602 AND b.receive_object_id in
  (
    SELECT r.role_id FROM  syn_ty_pmi_user AS u INNER JOIN  syn_t_userRole AS r ON u.user_id = r.user_id WHERE (u.fid = @pmiUserFid)
  )
 ) a

end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值