SQL Server基本存储过程分页

if (exists (select * from sys.objects where name = 'Page_UserInfo')) drop proc Page_UserInfo   --判断存储过程是否存在,存在则删除然后重建。
go
create proc Page_UserInfo  --创建存储过程 
    @name nvarchar(255),--用户名
    @pageindex int,--第几页
    @pagesize int--一页多少条
as 
set nocount on;  --不返回计数,提高应用程序性能
begin --开始
  declare @pagebefore int;--创建页数
    declare @pagerear int;--创建页数
  declare @condition nvarchar(2000);  --创建where条件
    set @pagebefore=@pagesize*@pageindex; --起始页
    set @pagerear=@pagebefore+@pagesize;--结束页
    set @condition=' where 1=1 ';
    if(@name<>'')
    set @condition=@condition+' and name like ''%'+@name+'%''';
  --创建一个虚拟表插入UserInfo表数据
  --获取分页数据
  --获取总数
    exec('
    declare @table table(
    iid int identity,
    Id int,
    Name nvarchar(20),
    Sex int,
    Age int,
    Birthday datetime
    )
    insert @table
    select * from UserInfo '+@condition+' order by Id desc  
    select * from @table where iid>'+@pagebefore+' and iid<='+@pagerear+'
    select count(*) as rows from @table;');
end;--结束
调用方式
EXEC Page_UserInfo  '' ,1,10      (赋值:用户名,页数,一页多少条)
USE [newHRP]
GO
/****** Object:  StoredProcedure [dbo].[Pro_TradeRecord]    Script Date: 11/10/2020 11:49:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
alter procedure Pro_TradeRecord
@StartTime datetime,@EndTime datetime
as
if @StartTime=''
begin
set @StartTime=DateAdd(MM,DATEDIFF(MM,0,getdate()),0)
end
if @EndTime=''
begin
set @EndTime=DateAdd(MI,-1,DateAdd(MM,DATEDIFF(MM,0,getdate())+1,0))
end
else
begin
set @EndTime=CONVERT(char(10),@EndTime,23)+' 23:59:00'
end
select CS_TRTradeDate as 日期,ZaoCan as 早餐,ZaoCanRenShu as 早餐人数,ZhongCan as 中餐,ZhongCanRenShu as 中餐人数,WangCan as 晚餐,WangCanRenShu as 晚餐人数,ZaoCanRenShu+ZhongCanRenShu+WangCanRenShu as 用餐人数统计,ZaoCan+ZhongCan+WangCan as 用餐金额统计,ChaoShiJinE as 超市金额,ChaoShiRenShu 超市人数,TanFenJinE as 汤粉面档金额,TanFenRenShu as 汤粉面档人数,ZaoCan+ZhongCan+WangCan+ChaoShiJinE+TanFenJinE as 合计

from
(
select
convert(char(10),CS_TRTradeTime,23) as CS_TRTradeDate,
sum(case when a.CS_TDName = '早餐' and c.Sys_RGName='饭堂' then CS_TRTradeMoney else 0 end) as ZaoCan,
sum(case when a.CS_TDName = '早餐'and c.Sys_RGName='饭堂' then 1 else 0 end) as ZaoCanRenShu,
sum(case when a.CS_TDName = '中餐' and c.Sys_RGName='饭堂' then CS_TRTradeMoney else 0 end) as ZhongCan,
sum(case when a.CS_TDName = '中餐' and c.Sys_RGName='饭堂' then 1 else 0 end) as ZhongCanRenShu,
sum(case when a.CS_TDName = '晚餐' and c.Sys_RGName='饭堂' then CS_TRTradeMoney else 0 end) as WangCan,
sum(case when a.CS_TDName = '晚餐' and c.Sys_RGName='饭堂' then 1 else 0 end) as WangCanRenShu,
sum(case c.Sys_RGName when '超市' then a.CS_TRTradeMoney else 0 end) as ChaoShiJinE,
sum(case c.Sys_RGName when '超市' then 1 else 0 end) as ChaoShiRenShu,
sum(case c.Sys_RGName when '汤粉面档' then a.CS_TRTradeMoney else 0 end) as TanFenJinE,
sum(case c.Sys_RGName when '汤粉面档' then 1 else 0 end) as TanFenRenShu
from CS_TradeRecord a left join   sys_equipment b on a.Sys_EquipmentID=b.Sys_EquipmentID 
left join Sys_Region c on b.Sys_RegionID=c.Sys_RegionID 
where CS_TRTradeTime between @StartTime and @EndTime
GROUP BY convert(char(10),CS_TRTradeTime,23)
)T 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值