将一个多表关联的条件查询中的多表通过 create   select  转化成一张单表的sql

将结果改为创建一个会话级别的临时表:

-- 根据下面这两个sql
CREATE TABLE revenue_cp AS SELECT /*+PARALLEL(12)*/
e.STD_PRVNCE_CD STD_PRVNCE_CD,
e.STD_LATN_CD STD_LATN_CD,
e. CUST_ID ,e.PROD_TYPE,
m.party_id party_id,
e.TY_12 TY_12,
e.TY_11 TY_11,
e.TY_10 TY_10,
e.TY_9 TY_9 ,
e.TY_8 TY_8 ,
e.TY_7 TY_7 ,
e.TY_6 TY_6 ,
e.TY_5 TY_5 ,
e.TY_4 TY_4 ,
e.TY_3 TY_3 ,
e.TY_2 TY_2 ,
e.TY_1 TY_1 ,
e.LY_12 LY_12,
e.LY_11 LY_11,
e.LY_10 LY_10,
e.LY_9 LY_9 ,
e.LY_8 LY_8 ,
e.LY_7 LY_7 ,
e.LY_6 LY_6 ,
e.LY_5 LY_5 ,
e.LY_4 LY_4 ,
e.LY_3 LY_3 ,
e.LY_2 LY_2 ,
e.LY_1 LY_1
FROM EDA_CUST_INC e, CUST_CP_MERGE m
WHERE 1 = 1
and e.CUST_ID = m.CUST_ID
AND e.STD_LATN_CD = m.STD_LATN_CD
and m.PARTY_ID IS NOT NULL
AND UPPER(m.PARTY_ID) != 'NULL'; CREATE TABLE revenue_all as select r.*, p.IDENTITY_TYPE, o.INDUSTRY_TYPE_ID
from revenue_cp r
left join party p on r.party_id=p.party_id
left join party_org o on r.party_id = o.party_id; --得到下面创建临时表的SQL -- 创建回话级别临时表
CREATE GLOBAL TEMPORARY table REVENUE_ALL2
(
STD_PRVNCE_CD VARCHAR2(20),
STD_LATN_CD VARCHAR2(20),
CUST_ID VARCHAR2(20),
PROD_TYPE VARCHAR2(20),
PARTY_ID NUMBER(16),
TY_12 NUMBER(16,2),
TY_11 NUMBER(16,2),
TY_10 NUMBER(16,2),
TY_9 NUMBER(16,2),
TY_8 NUMBER(16,2),
TY_7 NUMBER(16,2),
TY_6 NUMBER(16,2),
TY_5 NUMBER(16,2),
TY_4 NUMBER(16,2),
TY_3 NUMBER(16,2),
TY_2 NUMBER(16,2),
TY_1 NUMBER(16,2),
LY_12 NUMBER(16,2),
LY_11 NUMBER(16,2),
LY_10 NUMBER(16,2),
LY_9 NUMBER(16,2),
LY_8 NUMBER(16,2),
LY_7 NUMBER(16,2),
LY_6 NUMBER(16,2),
LY_5 NUMBER(16,2),
LY_4 NUMBER(16,2),
LY_3 NUMBER(16,2),
LY_2 NUMBER(16,2),
LY_1 NUMBER(16,2),
IDENTITY_TYPE NUMBER(4),
INDUSTRY_TYPE_ID NUMBER(16)
)
ON COMMIT PRESERVE ROWS; --向临时表中插数据 insert into REVENUE_ALL2 select r.*, p.IDENTITY_TYPE, o.INDUSTRY_TYPE_ID
from (SELECT /*+PARALLEL(12)*/
e.STD_PRVNCE_CD STD_PRVNCE_CD,
e.STD_LATN_CD STD_LATN_CD,
e. CUST_ID ,e.PROD_TYPE,
m.party_id party_id,
e.TY_12 TY_12,
e.TY_11 TY_11,
e.TY_10 TY_10,
e.TY_9 TY_9 ,
e.TY_8 TY_8 ,
e.TY_7 TY_7 ,
e.TY_6 TY_6 ,
e.TY_5 TY_5 ,
e.TY_4 TY_4 ,
e.TY_3 TY_3 ,
e.TY_2 TY_2 ,
e.TY_1 TY_1 ,
e.LY_12 LY_12,
e.LY_11 LY_11,
e.LY_10 LY_10,
e.LY_9 LY_9 ,
e.LY_8 LY_8 ,
e.LY_7 LY_7 ,
e.LY_6 LY_6 ,
e.LY_5 LY_5 ,
e.LY_4 LY_4 ,
e.LY_3 LY_3 ,
e.LY_2 LY_2 ,
e.LY_1 LY_1
FROM EDA_CUST_INC e, CUST_CP_MERGE m
WHERE 1 = 1
and e.CUST_ID = m.CUST_ID
AND e.STD_LATN_CD = m.STD_LATN_CD
and m.PARTY_ID IS NOT NULL
AND UPPER(m.PARTY_ID) != 'NULL') r
left join party p on r.party_id=p.party_id
left join party_org o on r.party_id = o.party_id; select * from REVENUE_ALL2;

将一个多表关联的条件查询中的多表通过 create select 转化成一张单表的sql、改为会话级别临时表 【我】的更多相关文章

  1. 关于表 datatable的条件查询

    关于表 datatable的条件查询 从数据库中获得一个datatable dt .里面有很多的死的数据.然后,我就是要在这个表中来按条件查询,例如 dt中有个列叫"palte", ...

  2. 学数据库还不会Select,SQL Select详解,单表查询完全解析?

    查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式> .. ...

  3. 【转载】 Sqlserver中通过Select Into语句快速单表备份

    在Sqlserver数据库中,备份数据的方式有很多种,可以使用整个数据库备份,也可使用导出包含数据和架构的脚本文件的方式来进行单表或多表数据的备份,其实还有一种Select Into的方式可以快速备份 ...

  4. Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)

    前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. ...

  5. 20.Yii2.0框架多表关联一对多查询之hasMany

    目录 新手模式 hasMany关联模式查询 新建mode层Article.php 新建mode层Category.php 新建控制器HomeController.php 新手模式 用上次的查询结果,作 ...

  6. mysql条件查询中AND与OR联合使用的注意事项!

    mysql查询中经常会用到AND与OR一起使用的情况,可如果写法不对,往往会起到相反的效果,这不,前几天就碰到了,最后测试果然提了一堆bug!!!! 废话就不多说了,主要总结一下几点: 一 当mysq ...

  7. 6月21日 Django ORM那些相关操作(表关联、聚合查询和分组查询)

    一.ForeignKey操作 正向查找 对象查找(跨表) 语法: 对象.关联字段.字段   示例: book_obj = models.Book.objects.first() # 第一本书对象 pr ...

  8. MyBatis3-实现多表关联数据的查询

    前提: 1.新建Article表和增加模拟数据,脚本如下: Drop TABLE IF EXISTS `article`; Create TABLE `article` ( `id` ) NOT NU ...

  9. 21.Yii2.0框架多表关联一对多查询之性能优化--模型的使用

    控制器里 功能: 通过分类,查分类下的所有文章 //关联查询 public function actionRelatesearch(){ //关联查询 //查询方法一(查一行) 一维数组下的值是obj ...

随机推荐

  1. python获取当前文件夹下所有文件名【转】

    os 模块下有两个函数: os.walk() os.listdir() 1 # -*- coding: utf-8 -*- 2 3 import os 4 5 def file_name(file_d ...

  2. 堆以及stl堆的使用

    概念 性质: 1.堆是一颗完全二叉树,用数组实现.    2.堆中存储数据的数据是局部有序的. 最大堆:1.任意一个结点存储的值都大于或等于其任意一个子结点中存储的值.      2.根结点存储着该树 ...

  3. window10 安装mysql5.6版本

    说明:因为之前都是安装版的,我用的是5.0,版本低不能够支持现在的业务,所以升级.之前的就卸载了!!(废话太多) 下载地址:https://dev.mysql.com/downloads/file/? ...

  4. Djiango权限组件

    一. login中注册 权限url def login(request): if request.method == "POST": username = request.POST ...

  5. zookeeper先验知识(2PC+paxos)

    一.2PC两阶段提交: 在分布式事务中,每个机器节点只能够明确知道自己事务操作的结果,是成功还是失败,而无法获取其他分布式节点的操作结果,因此在事务操作需要跨多个分布式节点时,需要引入一个协调者统一调 ...

  6. [转载]pythonnet

    python与c#的交互模块pythonnethttp://www.cnblogs.com/tester-zhenghan/p/5406521.html [集成IronPython] 添加CLR对象到 ...

  7. c语言数组的概念和指针的加减使用

    //数组变量名:就是一个地址:就是数组首元素的地址#include <stdio.h> int main(void) { int age[5] = {10,50,100,22,44}; / ...

  8. Delphi赋

    DELPHI者,经典开发工具.美奂美仑之开发环境也. 盖论DELPHI其身世,实为神界之神物,后借宝蓝公司之手,于1990年代,现于江湖. DELPHI一出江湖,码农爱之,企业爱之.一时间,风雨雷动, ...

  9. JSP了解点基础

    了解即可: 1.JSP本质: 是将jsp文件解析为java servlet类! 生成.class文件   存放在工程的work文件夹内! 2.注释  <%--   --%>    html ...

  10. 线程池(4)-参数-RejectedExecutionHandler

    1.介绍 当线程池线程数大于最大线程数(maximumPoolSize)时,多余的任务,程序应该按照什么拒绝策略处理. 2.拒绝策略4个 AbortPolicy:丢弃任务,并抛出RejectedExe ...