`

oracle 子查询用法

 
阅读更多

 

 

select tor.BACKMONEYSTATUS,tp.PRODUCTID,tpmd.DISCOUNTDETAILID
	,SUM (DECODE (tor.BACKMONEYSTATUS, null, tpmd.ACTUAL_FEE,0, tpmd.ACTUAL_FEE, 0)) unback_many --商品特定支付方式 未回款金额
	,SUM (DECODE (tor.BACKMONEYSTATUS, 1, tpmd.ACTUAL_FEE, 0)) backed_many --商品特定支付方式 已回款金额
	,(
		select sum(tpmd1.ACTUAL_FEE) 
		from t_orders tor1,T_ORDERSDETAIL tord1,T_PAYMENT_DETAIL tpmd1 
		WHERE tor1.ORDERSID=tord1.ORDERSID and tord1.PRODUCTID=tp.productid 
			and tord1.ORDERSID=tpmd1.ORDER_ID and tor1.BACKMONEYSTATUS <>1
		group by tord1.PRODUCTID
	) unback_many_all --商品未回款的总金额
	,(
		select sum(tpmd2.ACTUAL_FEE) 
		from t_orders tor2,T_ORDERSDETAIL tord2,T_PAYMENT_DETAIL tpmd2 
		WHERE tor2.ORDERSID=tord2.ORDERSID and tord2.PRODUCTID=tp.productid 
			and tord2.ORDERSID=tpmd2.ORDER_ID and tor2.BACKMONEYSTATUS =1
		group by tord2.PRODUCTID
	) backed_many_all --商品已回款的总金额
	
from t_orders tor,T_ORDERSDETAIL tord,T_PAYMENT_DETAIL tpmd,T_PRODUCT tp
WHERE  tor.ORDERSID=tord.ORDERSID and tord.PRODUCTID=tp.PRODUCTID 
	and tor.ORDERSID=tpmd.ORDER_ID
	--and tor.BACKMONEYDATE --回款时间
	and tor.FCONFIGID in(1) --城市
	--and tp.BEGINDATE --大于开始时间
	--and tp.ENDDATE --小于结束时间
	and tp.PRODUCTID=23178 
group by tor.BACKMONEYSTATUS,tp.PRODUCTID,tpmd.DISCOUNTDETAILID;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Oracle 子查询

    Oracle子查询是构建复杂查询的基石,通过合理利用单行或多行子查询,结合`IN`、`ANY`、`SOME`、`ALL`、`EXISTS`等关键字,可以极大地提高查询的灵活性和效率。理解并熟练掌握子查询的使用,对于提升数据库操作技能和...

    oracle中的子查询

    #### 三、子查询的使用方法 1. **子查询的基本语法**: ```sql SELECT select_list FROM table WHERE exproperator (SELECT select_list FROM table); ``` 其中 `exproperator` 是比较运算符,它可以是单行...

    oracle基本查询操作子查询用法实例分析

    Oracle数据库中的子查询是SQL查询语句的一种高级形式,它在一个查询中嵌套另一个查询,用于获取或处理数据。子查询可以在SELECT、FROM和WHERE子句中使用,以支持复杂的数据检索需求。以下是对子查询及其相关知识点的...

    oracle表连接和子查询实例

    以上实例展示了Oracle中表连接和子查询的各种应用方法,包括但不限于最大薪资部门员工信息、部门平均薪资等级、非经理员工姓名等。这些知识点对于理解和掌握Oracle数据库中的高级查询技术非常重要,对于数据库开发者...

    oracle子查询相关帮助

    - 练习编写不同类型的子查询,熟悉其语法和用法。 - 解决实际问题,如找出销售额超过平均销售额的员工,或者找出没有订单的客户。 8. **学习资源**: - 子查询的PPT文件"subquery.ppt"可能包含详细的讲解、示例...

    oracle讲义:子查询

    在学习Oracle子查询时,学员需要通过实践来熟悉不同场景下子查询的使用方法,掌握其返回的数据类型,以及如何在WHERE、HAVING、FROM子句中嵌入子查询,解决实际问题。同时,理解子查询返回空值对主查询的影响,以及...

    基于成本的ORACLE子查询性能研究.pdf

    【基于成本的ORACLE子查询性能研究】 Oracle数据库在处理SQL查询时,特别是涉及子查询时,会基于一种称为“成本”的评估标准来选择最佳执行计划。本文将深入探讨Oracle中的几种子查询类型,以及如何优化子查询以...

    oracle 子查询

    ### Oracle 子查询详解 #### 一、子查询概述 在Oracle数据库中,子查询(也称为嵌套查询)是一种非常强大的SQL特性,它允许在一条SQL语句中嵌入...掌握子查询的使用方法对于深入理解和高效利用Oracle数据库至关重要。

    Oracle性能查询包使用

    4. **子查询优化**:子查询可能会导致多次表访问,考虑使用连接(JOIN)或连接重写来替换子查询。 三、性能监控与调优工具 1. **V$视图**:Oracle提供了一系列V$视图,如V$SESSION, V$SQL, V$BUFFER_CACHE等,用于...

    提高Oracle数据库查询效率

    在进行子查询时,使用`EXISTS`代替`IN`往往能获得更好的性能。这是因为`EXISTS`只需要判断子查询是否有结果返回即可,而`IN`则需要返回所有的结果值。例如,假设我们要查询所有属于某个部门的员工,可以使用如下方式...

    Oracle中(column1,column2..)in(集合/子查询)的hibernate实现

    在Oracle数据库中,`IN`操作符是一种常用的查询方式,它允许我们检查某个值是否在一个给定的集合或子查询结果中。例如,如果我们有一个表`employees`,包含`column1`和`column2`列,我们可以用如下SQL查询来找出`...

    Oracle作业查询报告

    本实验报告详细介绍了如何使用Oracle SQL语句进行数据的查询和插入,旨在帮助学生掌握各种查询技巧和方法。 一、实验目标 实验的主要目的是让学生熟练掌握SQL中的查询语句,包括但不限于SELECT语句的使用,以及与之...

    oracle 查询重复数据

    - **子查询**: `(select peopleid from people group by peopleid having count(peopleid) &gt; 1)` 这部分首先从`people`表中选择`peopleid`字段,然后使用`GROUP BY`对`peopleid`进行分组,计算每组的`peopleid`数量...

    oracle查询优化pdf

    优化查询通常从编写高效的SQL语句开始,包括选择合适的索引、避免全表扫描、减少子查询以及合理使用JOIN操作。在Oracle中,理解执行计划至关重要,因为它是Oracle解析和执行SQL语句的方式。通过使用EXPLAIN PLAN或...

    Oracle基础学习之子查询

    Oracle子查询是数据库查询中的一个重要概念,它是在一个SQL语句中嵌套另一个SQL查询,用以提供外部查询所需的...总之,Oracle子查询是数据库查询中的一个重要工具,熟练掌握它的使用能帮助我们更好地管理和分析数据。

    oracle分页查询

    常用的 Oracle 分页查询方法有三种:使用 ROWNUM、使用 ROW_NUMBER() 和使用子查询。 第一种方法:使用 ROWNUM Oracle 的 ROWNUM 函数可以用来实现分页查询。基本格式如下: ```sql SELECT * FROM (SELECT A.*,...

Global site tag (gtag.js) - Google Analytics