open p_cr1 for
with sqla as
(select d.*,
(select c.STATICMONTH
from ly_zg_jzfbtstatic c
where c.ID = d.STATIC_ID) as STATICMONTH
from tablename1 d
where d.STATIC_ID in
(select r.ID
from ly_zg_jzfbtstatic r
where to_char(r.STATICMONTH, 'yyyy') = varYear)
and d.DISTNAME = '合计'),
sqlb as
(select d.*,
(select c.STATICMONTH
from ly_zg_lzzfbtstatic c
where c.ID = d.STATIC_ID) as STATICMONTH
from tablename2 d
where d.STATIC_ID in
(select r.ID
from ly_zg_lzzfbtstatic r
where to_char(r.STATICMONTH, 'yyyy') = varYear)
and d.DISTNAME = '合计'),
sqlc as
(select d.*,
(select c.STATICMONTH
from ly_zg_lzfbtstatic c
where c.ID = d.STATIC_ID) as STATICMONTH
from tablename3 d
where d.STATIC_ID in
(select r.ID
from ly_zg_lzfbtstatic r
where to_char(r.STATICMONTH, 'yyyy') = varYear)
and d.DISTNAME = '合计'),
sqld as
(select a.STATICMONTH,
(a.newscount + b.newscount + c.newscount) newscount,
(a.SYCOUNT + b.SYCOUNT + c.SYCOUNT) SYCOUNT,
(a.NEWGCOUNT + b.NEWGCOUNT + c.NEWGCOUNT) NEWGCOUNT,
(a.GYCOUNT + b.GYCOUNT + c.GYCOUNT) GYCOUNT,
(a.MSCCOUNT + b.MSCCOUNT + c.MSCCOUNT) MSCCOUNT,
(a.MGZFCOUNT + b.MGZFCOUNT + c.MGZFCOUNT) MGZFCOUNT,
(c.MSCCOUNT + c.MGZFCOUNT) lzfMSCCOUNT,
(b.MSCCOUNT + b.MGZFCOUNT) lzzfMSCCOUNT,
(a.MSCCOUNT + a.MGZFCOUNT) jzfMSCCOUNT,
(a.newscount + b.newscount + c.newscount + a.NEWGCOUNT +
b.NEWGCOUNT + c.NEWGCOUNT) sum1,
(a.MSCCOUNT + b.MSCCOUNT + c.MSCCOUNT + a.MGZFCOUNT +
b.MGZFCOUNT + c.MGZFCOUNT) sum2 from sqla a, sqlb b, sqlc c
where a.STATICMONTH = b.STATICMONTH
and c.STATICMONTH = a.STATICMONTH)
--
select (select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/01/01') as JAN,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/02/01') as FEB,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/03/01') as MAR,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/04/01') as APRIL,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/05/01') as MAY,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/06/01') as JUNE,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/07/01') as JULY,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/08/01') as AUJUST,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/09/01') as SEPT,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/10/01') as OCT,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/11/01') as NOV,
(select newscount
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/12/01') as DECE
from dual
union all
--
select null as JAN,
null as FEB,
null as MAR,
null as APRIL,
null as MAY,
null as JUNE,
null as JULY,
null as AUGUST,
null as SEPT,
null as OCT,
null as NOV,
null as DECE
from dual
union all
--
select (select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/01/01') as JAN,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/02/01') as FEB,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/03/01') as MAR,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/04/01') as APRIL,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/05/01') as MAY,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/06/01') as JUNE,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/07/01') as JULY,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/08/01') as AUJUST,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/09/01') as SEPT,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/10/01') as OCT,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/11/01') as NOV,
(select SYCOUNT
from sqld
where to_char(STATICMONTH, 'yyyy/mm/dd') = varYear || '/12/01') as DECE
from dual;

当现有的表不满足我们写如意sql,或者是根据现有的表写出如意sql太过复杂,所以Oracle为我们提出了with关键字,帮我们提供了很大的帮助

住,with后面的虚拟表必须用圆括号包起来,并且括号后面必须紧连接select关键字

并且用union all 连接的行中,每行中的列数据类型必须一致,注:null兼容任意数据类型

ye。。。。。。

Oracle中with关键字的使用的更多相关文章

  1. 如何查询oracle中的关键字

    如何查询oracle中的关键字,执行: select * from v$reserved_words

  2. 【oracle】Oracle中as关键字

    在Oracle中as关键字不能用于指定表的别名 在Oracle中指定表的别名时只需在原有表名和表的别名之间用空格分隔即可 但as关键字可以用于指定列的别名 但在存储过程中如果列的别名与原有列名相同,在 ...

  3. Oracle中的关键字

    NVL和COALESCE的区别: nvl(COMMISSION_PCT,0)如果第一个参数为null,则返回第二个参数如果第一个参数为非null,则返回第一个参数 COALESCE(EXPR1,EXP ...

  4. ORACLE中ESCAPE关键字用法

    ESCAPE用法 1.使用 ESCAPE 关键字定义转义符: 在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符. 2.ESCAPE 'escape_character'  允许在字符串中搜 ...

  5. Oracle中查询关键字select--from--where--group by--having--order by执行顺序

    select--from--where--group by--having--order by 这6个查询关键字的执行顺序: 1.from组装来自不同数据源的数据:2.where基于指定的条件对记录行 ...

  6. oracle中更新关键字merge和 with as关键字

    merge是oracle特有的语句,两表关联操作(增.删.改)就效率非常高 merge into table_name alias1 using (table|view|sub_query) alia ...

  7. Oracle中函数关键字简介

    常用的语法:select--from--where--group by--having--order by 1.分组子句group by +con 按什么分组 2.having子句  对上面分组的数据 ...

  8. Oracle中如何实现Mysql的两表关联update操作

    在看<MySQL 5.1参考手册>的时候,发现MySQL提供了一种两表关联update操作.原文如下: UPDATE items,month SET items.price=month.p ...

  9. 【Oracle】oracle中rownum的说明及使用技巧

    oracle中常用到ROWNUM,所以做一些本人对rownum的一些认识和使用技巧的记录,以便备查. 一.rownum的说明 rownum是oracle特有的一个关键字. (1)对于基表,在inser ...

随机推荐

  1. Win10新建分区

    今天忽然觉得将系统分为四个盘,有点无法将分类分开,所以增加了几个分区: 1.windows+X键在弹出的对话框中选择磁盘管理,进入如下界面: 2.如果你想从某个盘分出一些内存建立一个新的分区,就在这个 ...

  2. C# 安装WindowService服务和相关

    https://www.cnblogs.com/charlie-chen2016/p/8031774.html 这是一个备份数据库的服务,逻辑很简单,就是通过定时器实现在特定的时间执行SQL语句备份数 ...

  3. Windows的任务管理器怎么显示进程的图标

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Windows的任务管理器怎么显示进程的图标.

  4. WCF寄宿在C#控制台,并用命令行启动

    公司运用wcf比较多,所以自己研究一下寄宿做个笔记,wcf寄宿在控制台有两种方式 第一种,直接在控制台程序内添加wcf服务. 第二种分别添加控制台程序和wcf服务应用程序,前者引用后者,并在app.c ...

  5. PCA 降维算法详解 以及代码示例

    转载地址:http://blog.csdn.net/watkinsong/article/details/38536463 1. 前言 PCA : principal component analys ...

  6. 编程提取字符串"Java is a programming language"中的各个单词,并打印输出。

    import java.lang.String; import java.util.StringTokenizer; public class StringGetWord{ /* 编程提取字符串&qu ...

  7. javascript的对象创建模式---命名空间模式

    javascript中对象的概念是很普遍的,对象是是对象,数组是对象,函数也是对象,字符串其实也是对象.常见的对象创建方法有对象字面量.构造函数创建.我们先来看看对象的创建还有哪些更高级的模式. 一. ...

  8. .NET开源工作流RoadFlow-表单设计-数据表格

    数据表格即在表单中显示一个table,该table数据可以来自任意自定义的来源: 数据类型:指定表格的数据源类型 1.datatable,即.net中的System.Data.DataTable 2. ...

  9. matlab练习程序(旋转、径向模糊)

    还记得过去写过径向模糊,不过当时效果似乎不好. 这次效果还可以,程序中用的算法是: 1.求当前处理点和图像中心点之间的距离r与角度ang; 2.通过对r的修改得到径向模糊. 3.通过对ang的修改得到 ...

  10. 字符串安全处理:CRT安全增强以及安全模板重载

    Secure Template Overloads :http://msdn.microsoft.com/en-us/library/ms175759(v=vs.80).aspx Security E ...