<!--  分页查询派货成本  -->
<select id="queryCostRegionPriceBycondtion" parameterMap="CostRegionPriceQueryEntity" resultMap="CostRegionPriceResultEntity">
SELECT
b.AUDIT_HOUR,
b.OPER_STATUS,
b.RELE_ID,
b.STAR_REGION_ID,
b.END_REGION_ID,
b.START_REGION__NAME,
b.END_REGION_NAME,
b.CREATE_USER_CODE||'('||e1.EMPLOYEE_NAME||')' CREATE_USER_CODE,
b.MODIFY_USER_CODE,
b.CREATE_TIME,
b.MODIFY_TIME,
b.DEL_FLAG,
b.REMARK,
b.COST_NAME,
b.START_REGION_TYPE,
b.END_REGION_TYPE,
b.CALC_TYPE,
b.BIZ_TYPE,
b.TIME_CODE,
b.PRODUCT_CODE,
b.DIS_TYPE,
b.START_TIME,
b.END_TIME,
b.PRICE_ITEM_CODE, c.audit_time,
c.audit_user_code||'('||e2.EMPLOYEE_NAME||')' audit_user_code,
case WHEN
c.AUDIT_STATUS = 0 and
<![CDATA[SYSDATE > c.START_TIME]]>
then 2
WHEN
c.AUDIT_STATUS = 0 and
<![CDATA[SYSDATE < c.START_TIME]]>
then 0
WHEN
c.AUDIT_STATUS = 1 then 1
WHEN
c.AUDIT_STATUS = -1 then -1
ELSE 4
END AUDIT_STATUS
FROM
T_COST_REGION_PRICE b left join T_BASE_EMPLOYEE e1
on b.CREATE_USER_CODE = e1.EMPLOYEE_CODE
left join
(
SELECT
A .audit_time,
A .audit_user_code,
A .rele_id,
A .AUDIT_status,
A.START_TIME,
A.audit_hour
FROM
(
SELECT
ROW_NUMBER () OVER (
PARTITION BY T .rele_id
ORDER BY
T .audit_time ASC
) AS rn,
T .*
FROM
t_cost_price_ad T
where 1=1 ) A
WHERE
A .rn = 1
) c
on b.rele_id=c.rele_id
left join T_BASE_EMPLOYEE e2
on c.audit_user_code =e2.EMPLOYEE_CODE
WHERE 1=1
<if test="auditStatus == 0" >
and c.AUDIT_STATUS = '0' and
<![CDATA[SYSDATE < c.START_TIME]]>
</if>
<if test="auditStatus == 1" >
and c.AUDIT_STATUS = #{auditStatus,jdbcType=NUMERIC}
</if>
<if test="auditStatus == -1" >
and c.AUDIT_STATUS = #{auditStatus,jdbcType=NUMERIC}
</if>
<if test="auditStatus == 2" >
and c.AUDIT_STATUS = '0' and
<![CDATA[SYSDATE > c.START_TIME]]>
</if>
<!-- 报价名称 -->
<if test="costName != null and costName !=''" >
AND b.COST_NAME like concat(concat('%',#{costName,jdbcType=VARCHAR}),'%')
</if>
<!-- 产品类型 -->
<if test="productCode != null and productCode !=''" >
AND b.PRODUCT_CODE = #{productCode,jdbcType=NUMERIC}
</if>
<!-- 派送方式 -->
<if test="disType != null and disType !='' or disType == 0" >
AND b.DIS_TYPE = #{disType,jdbcType=NUMERIC}
</if>
<!-- 开始派货区间 -->
<if test="starRegionId != null and starRegionId !='' and starRegionId !='empty'" >
AND b.STAR_REGION_ID = #{starRegionId,jdbcType=VARCHAR}
</if>
<!-- 结束派货区间 -->
<if test="endRegionId != null and endRegionId !='' and endRegionId !='empty'" >
AND b.END_REGION_ID = #{endRegionId,jdbcType=VARCHAR}
</if>
<!-- 业务类型 -->
<if test="bizType != null and bizType !=''" >
AND b.BIZ_TYPE = #{bizType,jdbcType=NUMERIC}
</if>
<!-- 启用状态-->
<if test="delFlag != null and delFlag !=''" >
AND b.DEL_FLAG = #{delFlag,jdbcType=NUMERIC}
</if>
<!-- 产品时效-->
<if test="timeCode != null and timeCode !=''" >
AND b.TIME_CODE = #{timeCode,jdbcType=NUMERIC}
</if>
<!-- 计费类型-->
<if test="calcType != null and calcType !=''" >
AND b.CALC_TYPE = #{calcType,jdbcType=NUMERIC}
</if>
<if test="startTimeStart != null and startTimeEnd != null">
and <![CDATA[ b.START_TIME >= #{startTimeStart,jdbcType=TIMESTAMP}]]>
and <![CDATA[ b.START_TIME <= #{startTimeEnd,jdbcType=TIMESTAMP}]]>
</if>
<if test="endTimeStart != null and endTimeEnd != null">
and <![CDATA[ b.END_TIME >= #{endTimeStart,jdbcType=TIMESTAMP}]]>
and <![CDATA[ b.END_TIME <= #{endTimeEnd,jdbcType=TIMESTAMP}]]>
</if>
<!-- 计费类型-->
<if test="priceItemCode != null and priceItemCode !=''" >
AND b.PRICE_ITEM_CODE = #{priceItemCode,jdbcType=NUMERIC}
</if>
order by b.CREATE_TIME desc
</select>

  

SELECT b.AUDIT_HOUR, b.OPER_STATUS, b.RELE_ID, b.STAR_REGION_ID, b.END_REGION_ID, b.START_REGION__NAME, b.END_REGION_NAME, b.CREATE_USER_CODE||'('||e1.EMPLOYEE_NAME||')' CREATE_USER_CODE, b.MODIFY_USER_CODE, b.CREATE_TIME, b.MODIFY_TIME, b.DEL_FLAG, b.REMARK, b.COST_NAME, b.START_REGION_TYPE, b.END_REGION_TYPE, b.CALC_TYPE, b.BIZ_TYPE, b.TIME_CODE, b.PRODUCT_CODE, b.DIS_TYPE, b.START_TIME, b.END_TIME, b.PRICE_ITEM_CODE, c.audit_time, c.audit_user_code||'('||e2.EMPLOYEE_NAME||')' audit_user_code FROM T_COST_REGION_PRICE b left join T_BASE_EMPLOYEE e1 on b.CREATE_USER_CODE = e1.EMPLOYEE_CODE left join ( SELECT A .audit_time, A .audit_user_code, A .rele_id, A .AUDIT_status, A.START_TIME, A.audit_hour FROM ( SELECT ROW_NUMBER () OVER ( PARTITION BY T .rele_id ORDER BY T .audit_time ASC ) AS rn, T .* FROM t_cost_price_ad T where 1=1 ) A WHERE A .rn = 1 ) c on b.rele_id=c.rele_id left join T_BASE_EMPLOYEE e2 on c.audit_user_code =e2.EMPLOYEE_CODE WHERE 1=1

  

SELECT
A .audit_time,
A .audit_user_code,
A .rele_id,
A .AUDIT_status,
A.START_TIME,
A.audit_hour
FROM
(
SELECT
ROW_NUMBER () OVER (
PARTITION BY T .rele_id
ORDER BY
T .audit_time ASC
) AS rn,
T .*
FROM
t_cost_price_ad T
where 1=1 ) A
WHERE
A .rn = 1

一对多,(多)条件符合,取(多)时间最近的信息

一对多sql的更多相关文章

  1. HQL之多表查询(一对多和多对多)

    一.一对多 以班级Classes和学生Student为例:   回忆sql语句: //内链接,两种方式效果一样,查询的是两边都有的数据 SELECT c.*,s.* FROM classes c,st ...

  2. mysql基础知识(3)

    十六.组合查询 使用 union 来组合查询,如果第一个查询返回M行,第二个查询返回N行,那么组合查询的结果一般为 M+N 行. 注意:每个查询必须包含相同的行.表达式的聚集函数:默认会去除相同行.表 ...

  3. mybatis 联结查询

    一.查询 员工(tbl_employee)时,关联 查询出 员工对于的部门信息 (tab1_dept),一对一查询,或者多对一查询 适用 emp bean里面 包含 部门bean dept属性对象 1 ...

  4. Mybatis学习的一些细节

    一.mybatis 基本配置 最近几天一直在学习mybatis,看了一些源码,本文讲述mybatis的一些基本配置和基本的用法和注意到一些细节.个人时间和精力有限,本文属于流水账类型,不成体系,算是自 ...

  5. mybatis的动态sql编写以及一对一关系查询和一对多的查询

    创建mybatis数据库,运行以下sql语句 /* SQLyog Ultimate v8.32 MySQL - 5.5.27 : Database - mybatis **************** ...

  6. PD 15.1 安装 破解 , 简单使用 (一对多,多对多关系生成sql脚本) , CDM 和 PDM 的区别;PD15.1 生成sql2008 无FK外键约束的解决方法

    CDM是概念模型,在概念模型上没有具体数据库产品的概念,反映的是实体和联系.PDM是物理模型,是依赖具体数据库产品的模型,比如可以指定具体的数据类型和约束等等.在PowerDesigner中两个模型之 ...

  7. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  8. Django---Django的ORM的一对多操作(外键操作),ORM的多对多操作(关系管理对象),ORM的分组聚合,ORM的F字段查询和Q字段条件查询,Django的事务操作,额外(Django的终端打印SQL语句,脚本调试)

    Django---Django的ORM的一对多操作(外键操作),ORM的多对多操作(关系管理对象),ORM的分组聚合,ORM的F字段查询和Q字段条件查询,Django的事务操作,额外(Django的终 ...

  9. SQL的一对多,多对一,一对一,多对多什么意思?

    1.一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任.在这个班级中随便找一个人,就会知道他们的班主任是谁:知道了这个班主任就会知道有哪几个学生.这里班主任和学生的关系就是一对多. 2.多对 ...

随机推荐

  1. bzoj1041 圆上的整点 数学

    题目传送门 题目大意:求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 思路:没思路,看大佬的博客(转载自https://blog.csdn.net/csyzcyj),转载只 ...

  2. 面向对象中的@classonlymethod 与 @classmethod的区别

    如果要使用classonlymethod ,则需要先定义好一个classonlymethod 类. 首先我们需要明白无论是classonlymethod还是classmethod,本质都是一个类,而c ...

  3. [转] 利用CORS实现跨域请求

    [From] http://newhtml.net/using-cors/ 跨域请求一直是网页编程中的一个难题,在过去,绝大多数人都倾向于使用JSONP来解决这一问题.不过现在,我们可以考虑一下W3C ...

  4. HTML5必须知道的那些事

    [转自] http://www.cnblogs.com/hamy/archive/2012/02/21/2362110.html 再普及一次HTML5基础,HTML5必须知道的那些事,HTML5扫盲. ...

  5. G: 又见模法师

    G: 又见模法师 Time Limit: 1 s      Memory Limit: 128 MB        #include <stdio.h> ; typedef long lo ...

  6. PIE SDK矢量透明度、标注控制

    1. 功能简介 透明度和标注是矢量图层的相关属性:图层透明值是0-100间的整数,标注是显示在地图上的文字信息,它是出图中不可或缺的重要元素.标注的样式丰富,并且放置位置灵活. 2. 功能实现说明 2 ...

  7. win10 装centos7 虚拟机

    1.下载VMware Workstation 64版本 https://www.vmware.com/products/workstation-pro/workstation-pro-evaluati ...

  8. 2.3 if switch for等流程控制

    if条件中可以写多个语句,语句的作用域仅限于if,不可在if之外的地方使用 package main import ( "fmt" "io/ioutil" ) ...

  9. (转)linux命令详解之useradd命令使用方法

    linux命令详解之useradd命令使用方法 原文:http://blog.csdn.net/u011537073/article/details/51987121 Linux 系统是一个多用户多任 ...

  10. os.popen('python hello_out.py')中Python程序执行时默认的当前路径为MS-DOS CMD的默认路径

    >>> import os >>> os.getcwd() 'D:\\pythonCode\\pp4e' >>> os.chdir('Stream ...