分页存储过程

USE [DB_JP_BaseInfo] GO /****** Object: StoredProcedure [dbo].[sp_HeGeIndexReport] Script Date: 12/07/2015 10:28:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ------------------------------------ --根据时间段查询报名点的合格率情况-- ------------------------------------ ALTER PROCEDURE [dbo].[sp_HeGeIndexReport] @pageSize int=1, --分页数量 @pageIndex int=1, --当前页 @orderby varchar(50)='A.ID', --排序字段 --@sortType int='asc', @StartTime datetime, --排序类型 @EndTime datetime, --@where varchar(max) --查询条件 AS BEGIN Declare @beginRow int, @endRow int, @sql varchar(max) Set @beginRow = @pageSize * (@pageIndex - 1) + 1 Set @endRow = @pageSize * @pageIndex Declare @mainSql varchar(max), @getCountSql varchar(max) set @mainSql='Select * ,ROW_NUMBER() OVER (ORDER BY '+@orderby+') As row From ( SELECT aa.*, (CASE WHEN aa.KeMuYiBaoMingCount=0 THEN 0 ELSE aa.KeMuYiHeGeCount/aa.KeMuYiBaoMingCount END) AS KeMuYiHeGeIndex, (CASE WHEN aa.KeMuErBaoMingCount=0 THEN 0 ELSE aa.KeMuErHeGeCount/aa.KeMuErBaoMingCount END) AS KeMuYiErGeIndex, (CASE WHEN aa.KeMuSanBaoMingCount=0 THEN 0 ELSE aa.KeMuSanHeGeCount/aa.KeMuSanBaoMingCount END) AS KeMuSanHeGeIndex, (CASE WHEN aa.KeMuSiBaoMingCount=0 THEN 0 ELSE aa.KeMuSiHeGeCount/aa.KeMuSiBaoMingCount END) AS KeMuSiHeGeIndex FROM ( SELECT reg_tem.RegSiteNo, reg_tem.RegSiteName, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目一'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuYiBaoMingCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目一'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=1 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuYiHeGeCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目一'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=2 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuYiQueKaoCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目二'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuErBaoMingCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目二'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=1 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuErHeGeCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目二'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=2 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuErQueKaoCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目三'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuSanBaoMingCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目三'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=1 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuSanHeGeCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目三'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=2 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuSanQueKaoCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目四'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuSiBaoMingCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目四'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=1 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuSiHeGeCount, (SELECT count(*) FROM CheckResults WHERE CheckType=''科目四'' AND @StartTime<CheckTime AND CheckTime<@EndTime AND CheckResult=2 AND StuId IN (SELECT StuId FROM student WHERE RegSiteId=reg_tem.id AND isDelete=0)) AS KeMuSiQueKaoCount FROM regsite reg_tem WHERE reg_tem.Isdelete=0 ) aa ) A '+@where set @sql = 'Select * From ('+@mainSql+' ) T Where T.row between '+Convert(nvarchar(9),@beginRow)+' and '+Convert(nvarchar(9),@endRow) Set @getCountSql = 'Select Count(*) From ('+@mainSql+') Tb'--根据条件获取总数量 EXECUTE(@sql) EXECUTE(@getCountSql) END 

原文链接:https://www.cnblogs.com/muxueyuan/p/5025521.html

兔子先生 西安驾培

于灯火阑珊处,于暗香离别时,未曾放弃

相关推荐

抖音矩阵平台有哪些?

  抖音矩阵平台是指一系列用于在抖音平台上进行内容创作、运营和推广的工具和系统。其中,视界引擎短视频运营获客系统作为一款全面的抖音矩阵平台,具有许多优势。 抖音矩阵平台是当今数字营销领域的热门工 ...

怎么看待直播带货的营销形式?

随着电商行业的崛起,越来越多的商家开始使用直播的方式来进行产品推广,那么直播为什么可以推广产品带货呢?直播带货的本质是什么呢?今天,就来跟大家讲解一下。直播之所以可以推广产品,引导观众购买产品是因 ...

快抖矩阵多账号管理系统官方正版

账号源从哪里来?没有那么多抖音账号?怎么赚钱?有什么价值?       首先这是一套多开可招代理的矩阵账号管理系统,第一目的是让你拿来给有很多账号的品牌机构或达人当账号辅助管理工具打理账户 ...