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. ExcelHelper office 导出

    要是服务器上没有装着excel 可以用c#导出excel表吗 2009-08-10 17:36 风之成 | 分类:办公软件 | 浏览2279次 租用的空间 服务器上没有装着office excel,可 ...

  2. artDialog组件应用学习(四)

    一.在对话框自定义操作按钮 预览: html调用代码: var btnArray = [ { value: '同意', callback: function () { this.content('你同 ...

  3. 关闭Windows 系统当前连接的Wifi以及判断物理\虚拟网卡,有线\无线网卡

    1.关闭wifi ,调用Api [DllImport("Wlanapi.dll", SetLastError = true)] public static extern uint ...

  4. hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)

    hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一.预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,t ...

  5. C# 读写xml、excel、word、ppt、access

    C# 读写xml.excel.word.access 这里只是起个头,不做深入展开,方便以后用到参考 读写xml,主要使用.net  的xml下的document using System;using ...

  6. Cass和ArcGIS交换

    南方cass图形为CAD,把CAD图形转换成arcgis没有任何问题,到属性有问题,cass存放数据是放在CAD扩展XDATA中,和 arcgis导入导出CAD标准扩展属性不一样,只能二次开发使用,c ...

  7. 禁止IOS双击上滑

    var agent = navigator.userAgent.toLowerCase(); var iLastTouch = null; if (agent.indexOf("iphone ...

  8. 开通cnblogs博客

    开通博客,准备记录学习和开发过程

  9. selendroid之toast处理

    最近发现原来处理toast的操作失效了.仔细看了下原来的API.决定用switchTo来解决.driver.switchTo().defaultContent().findElement(By.id( ...

  10. C# 调用 Excel 宏的方法

    调用方式是使用 Microsoft.Office.Interop.Excel.dll 组件来调用,该组件可以通过 Excel.exe 来生成,具体步骤如下: 第一步,进入 visual Studio ...