<!--  分页查询派货成本  -->
<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. 2016 ccpc 杭州 D.Difference hdu5936(折半枚举)

    有坑!!!当x==0时,因为y>0,a,b不能同时为0,所以答案要-1 #include<iostream> #include<cstdlib> #include< ...

  2. 可持久化Treap 赛前摸鱼笔记

    1.基本结构 随机化工具 unsigned int SEED = 19260817; //+1s inline int Rand(){ SEED=SEED*1103515245+12345; retu ...

  3. Oracle9i之xmltype应用(1)

    oracle从9i开始支持一种新的数据类型-- xmltype,用于存储和管理xml数据,并提供了很多的functions,用来直接读取xml文档和管理节点.下面将介绍xmltype的一些基本使用. ...

  4. js请求数据的例子

    //es6实现方式 const getData = async ()=> { //同步请求数据 const res1=await this.$http.get("https://www ...

  5. Linux下jenkins改端口、解决内存溢出、版本升级

    1.新版本的jenkins修改端口新版本jenkins的配置文件在/etc/sysconfig/jenkinsvi /etc/sysconfig/jenkins找到JENKINS_PORT=" ...

  6. URL篇之不安全字符处理

    URL是可移植的.它要统一命名因特网上的所有资源,就需要通过各种不同的协议来传送这些资源.这些协议在传输数据时会使用不同的机制,所以,设计URL,使其可以通过任意因特网协议安全地传输是很重要的. UR ...

  7. DP Intro - Tree POJ2342 Anniversary party

    POJ 2342 Anniversary party (树形dp 入门题) Anniversary party Time Limit: 1000MS   Memory Limit: 65536K To ...

  8. 创建本地maven仓库

    1.首先从下面地址下载nexus-oss-webapp-2.3.1-01 http://pan.baidu.com/s/1pKOLdbH 2.修改配置文件: 打开:*nexus-oss-webapp- ...

  9. (转)Centos7.2 给grub菜单做加密

    Centos7.2 给grub菜单做加密 原文:http://www.cnblogs.com/hanhy/articles/7274340.html#top 1.简述linux开机启动流程: 1) 启 ...

  10. SecureCRT 连接 CentOS虚拟机

    SecureCRT 连接 CentOS虚拟机 1.安装SecureCRT SecureCRT是一款支持SSH等协议的终端仿真软件,可以在windows下登录Linux服务器,这样大大方便了开发工作.安 ...