Create PROCEDURE [dbo].[Proc_B2B_GetBatchMainPaging]
@StationNo AS varchar() , --m
@StationName AS varchar() , --m
@PartNo AS varchar() , -- son
@PartName AS varchar() , --son
@IsOldPart AS varchar() , --m
@IsRebate AS varchar() , --m
@IsTransport AS varchar() , --m
@startApplyTime AS varchar() , --m
@endApplyTime AS varchar() , --m
@startExpectDate AS varchar(), --m
@endExpectDate AS varchar() , --m
@page AS int , --
@size AS int --
-- B2B_BatchPartMain as m
-- B2B_BatchApprovalDetail as D
-- B2B_BatchSendPartInfo as s
-- B2B_BatchPartsInfo as son
AS
BEGIN CREATE TABLE #ReturnTable (
[PartNo] varchar() NULL , -- son
[PartName] varchar() NULL , -- son
[Counts] DECIMAL(,) NULL , -- son
[ApplyPrice] [decimal](, ) NULL, -- son
[ApprovalPrice] [decimal](, ) NULL, -- son
[IsOldPart] [varchar]() NULL, --m
[StationNo] [varchar]() NOT NULL, --m
[StationName][varchar]() NOT NULL, --m
[ExpectDate] [datetime] NULL, --m
[OrderStatus] [varchar]() NULL, --m
[ApplyTime] [datetime] NULL, --m
[CurrnetApprover] [varchar]() NULL, --D
[ApprovalTime] [datetime] NULL, --D
[Supply] [varchar]() NULL --s
); CREATE TABLE #ReturnData (
[PageIndex] varchar() NULL ,
[PageSize] varchar() NULL ,
[totalNumber] varchar() NULL ,
[PageCount] varchar() NULL ,
); DECLARE @strSql varchar(MAX);
--拼接Sql语句
set @strSql='
select
son.PartNo,
son.PartName,
son.Counts,
son.ApplyPrice,
son.ApprovalPrice,
m.IsOldPart,
m.StationNo,
m.StationName,
m.ExpectDate,
m.OrderStatus,
ApplyTime,
D.CurrnetApprover,
d.ApprovalTime,
s.Supply from B2B_BatchPartMain as m
JOIN B2B_BatchPartsInfo as son ON m.BOrderNo=son.BOrderNo
JOIN B2B_BatchApprovalDetail as D ON m.BOrderNo=D.BOrderNo
JOIN B2B_BatchSendPartInfo AS S ON m.BOrderNo=S.BOrderNo
where ='
set @strSql= @strSql + ' AND convert(varchar(100), m.ApplyTime,21)>= ''' + convert(varchar(), @startApplyTime,) + ''' '
set @strSql= @strSql + ' AND convert(varchar(100), m.ApplyTime,21)<= ''' + convert(varchar(), @endApplyTime,) + ''' '
set @strSql= @strSql + ' AND convert(varchar(100), m.ExpectDate,21)>= ''' +convert(varchar(), @startExpectDate,) + ''' '
set @strSql= @strSql + ' AND convert(varchar(100), m.ExpectDate,21)<= ''' +convert(varchar(), @endExpectDate,) + ''' ' if( @StationNo is not null)
begin
set @strSql= @strSql + ' and m.StationNo =''' + @StationNo+'''' ;
end
--判断拼接Sql语句
if( @StationName is not null) and (@StationName!='')
begin
set @strSql= @strSql + ' and m.StationName =''' + @StationName+'''' ;
end
if( @PartNo is not null)and (@PartNo!='')
begin
set @strSql= @strSql + ' and son.PartNo =''' + @PartNo+'''' ;
end
if( @PartName is not null)and (@PartName!='')
begin
set @strSql= @strSql + ' and son.PartName =''' + @PartName+'''' ;
end
if( @IsOldPart is not null)and (@IsOldPart!='')
begin
set @strSql= @strSql + ' and m.IsOldPart =''' + @IsOldPart+'''' ;
end
if( @IsRebate is not null)and (@IsRebate!='')
begin
set @strSql= @strSql + ' and m.IsRebate =''' + @IsRebate+'''' ;
end
if( @IsTransport is not null)and (@IsTransport!='')
begin
set @strSql= @strSql + ' and m.IsTransport =''' + @IsTransport+'''' ;
end
--插入数据到临时表
insert INTO #ReturnTable exec(@strSql) ;
--总数量
DECLARE @totalNumber as INT ;
select @totalNumber=COUNT(PartNo) from #ReturnTable;
-- 总页数
DECLARE @PageCount as INT ;
SET @PageCount= Ceiling(@totalNumber*1.0/@size);
--插入返回信息
INSERT into #ReturnData VALUES(@page,@size,@totalNumber,@PageCount)
--分页查询数据
select * from (select ROW_NUMBER() over(order by PartNo asc) as rowNumber , * from #ReturnTable) as temp where rowNumber between (((@page-)*@size)+) and (@page*@size)
select * from #ReturnData; --删除临时表
drop table #ReturnTable

Sql 语句拼接 多条件分页查询的更多相关文章

  1. ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)

    ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题:  浏览器安全限制了前端脚本跨站点的访问资源, ...

  2. 查询拼接SQL语句,多条件模糊查询

    多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...

  3. SQL语句(六)分页查询和联合查询

    目录 一.分页查询 语法格式 应用 二.联合查询 语法和作用 特点 应用 UNION和UNION ALL的区别 一.分页查询 语法格式 SELECT 查询列表 FROM 表 WHERE ... GRO ...

  4. sql查询语句如何解析成分页查询?

    我们公司主要mysql存储数据,因此也封装了比较好用mysql通用方法,然后,我们做大量接口,在处理分页查询接口,没有很好分查询方法.sql查询 语句如何解析成“分页查询”和“总统计”两条语句.可能, ...

  5. 六、SQL语句进行多条件查询,并解决参数为空的情况

    一.SQL语句进行多条件查询,并解决参数为空的情况 QueryEntity query; var whereSql = new StringBuilder("Where 1=1") ...

  6. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  7. Java web实现综合查询+SQL语句拼接

    首先展示图形界: 界面比较简单,但麻雀虽小五脏俱全.因为数据库只有六种数据类型,所以最多添加六个查询框. 测试以下问题: 删除方式是从上往下开始的,如果删除之后会有问题.(后续改进ing) 若干个并且 ...

  8. 判断合同金额是否可以转整形和sql语句中添加条件语句

    主要用到sqlserver语句中的判断语法 if (min_hetonge.Length > 0 && int.TryParse(min_hetonge, out min)) s ...

  9. asp.net mvc多条件+分页查询解决方案

    开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...

随机推荐

  1. LeetCode 字符串专题(一)

    目录 LeetCode 字符串专题 <c++> \([5]\) Longest Palindromic Substring \([28]\) Implement strStr() [\(4 ...

  2. Linux 管理进程

    探查进程 参数 描述 -A 显示所有进程 -N 显示与指定参数不符的所有进程 -a 显示除控制进程(session leader1)和无终端进程外的所有进程 -d 显示除控制进程外的所有进程 -e 显 ...

  3. Python3.6 连接MySQL(二)转载

    安装mysqlclient库 错误:OSError: mysql_config not found 解决:  方案一 ln -s /usr/local/mysql/bin/mysql_config / ...

  4. 第一个servlet程序

    在Eclipse中新建一个Dynamic Web Project 在WebContent下面添加index.jsp <%@ page language="java" cont ...

  5. React Native搭建开发环境 之 --走过的坑

    React Native是使用JavaScript和React编写原生移动应用 我的开发平台是基于windows系统,所以只支持android,要是想开发ios系统,那就只能考虑使用沙盒环境 接下来就 ...

  6. SQL Server 恢复数据库至指定时间点

    发生数据库误删的情况下,及时恢复数据到误操作前的状态 工具/原料   SQL Server Management Studio 数据库完整备份及日志备份 必备条件   1 数据库右键属性,在选项中查看 ...

  7. C#的几种文件操作方法

    创建或覆盖文件 需求:如果文件不存在,创建之,如果存在,覆盖之. 1,可能有问题的方法 using (FileStream fs = File.OpenWrite(@"d:\work\1.t ...

  8. [Swift]LeetCode29. 两数相除 | Divide Two Integers

    Given two integers dividend and divisor, divide two integers without using multiplication, division ...

  9. [Swift]LeetCode670. 最大交换 | Maximum Swap

    Given a non-negative integer, you could swap two digits at most once to get the maximum valued numbe ...

  10. Git漏洞允许任意代码执行(CVE-2018-17456)复现

    Git漏洞允许任意代码执行(CVE-2018-17456) 国外安全研究员 joernchen 在 9 月 23 日向 git 官方报告了漏洞的相关细节.10月5日,Git项目披露了一个漏洞,编号为C ...