一个with as的oracle应用

with tmp1 as (
select
t."ID",
t.userName,
t.productId,
t.operateId,
t.normalIds,
t.operateTime
from trsaaa_statisticripeData t
left join idsuser t2 on t.username=t2.username
where t.operateTime < (to_date(‘2014-01-01‘, ‘yyyy-mm-dd‘) -
       to_date(‘1970-01-01‘ || TZ_OFFSET(sessiontimezone), ‘yyyy-mm-dd hh:mi‘)) * 86400000
   and t.operateTime > (to_date(‘2013-01-01‘, ‘yyyy-mm-dd‘) -
       to_date(‘1970-01-01‘ || TZ_OFFSET(sessiontimezone), ‘yyyy-mm-dd hh:mi‘)) * 86400000
   and t.statisticType = ‘TRADING‘
),
tmp2 as (
  select t.entry_id entry_id
  from [email protected] t start with t.entry_id in (‘52‘)
  connect by t.parent_id = prior t.entry_id
),
tmp3 as (
  select distinct
  tmp1."ID",
  tmp1.userName,
  tmp1.productId,
  tmp1.operateId,
  Min(tmp1.operateTime - t4.BEGINTIME) as touchTime
  from tmp1 left join TRSAAA_CONTRACT t4
  on (tmp1.username = t4.username and (tmp1.operateTime between t4.BEGINTIME and t4.ENDTIME or (tmp1.operateTime > t4.BEGINTIME and t4.ENDTIME = 0)))
  left join tmp2 on (1=1)
  where ((tmp1.normalIds like ‘%,‘ || tmp2.entry_id) or (tmp1.normalIds like ‘%,‘ || tmp2.entry_id || ‘,%‘))
  group by tmp1."ID",
  tmp1.userName,
  tmp1.productId,
  tmp1.operateId
)
   select distinct
   t.userName as 用户账号,
   t.nickName as 用户名称,
   t3.typename as 用户类型,
   case when t4."CHARGINGWAY" = ‘ITEM‘ then
   ‘按条计费‘
   when t4."CHARGINGWAY" = ‘KIND‘ then
   ‘按类计费‘
   when t4."CHARGINGWAY" = ‘NO‘ then
   ‘不计费‘
   when t4."CHARGINGWAY" = ‘AFTER‘ then
   ‘后付费‘
   else
   t4."CHARGINGWAY"
   end as 计费类型,
   case t.VALIDDATA when 1 then ‘有效‘ else ‘无效‘ end as 交易有效性,
   t.normalids as normalids,
   t.feeid as feeid,
   t.feepath as feepath,
   to_char( TO_DATE(‘01/01/1970 ‘|| TZ_OFFSET(sessiontimezone), ‘MM/DD/YYYY HH:MI‘) +
   operateTime / (1000 * 60 * 60 * 24),‘YYYY/MM/DD‘) as 交易时间,
   t.productId as 稿件ID,
   t.productTitle as 稿件标题,
   t.operateId as 交易流水号,
   t.price as 交易价格,
   t.statisticType as 交易类型
   from TRSAAA_STATISTICRIPEDATA t
   inner join tmp3 on t."ID" = tmp3."ID"
   left join TRSAAA_USERTYPEMAPPING t3 on t.username=t3.username
   left join TRSAAA_CONTRACT t4 on (t.username = t4.username and t.operateTime - t4.BEGINTIME = tmp3.touchTime);

时间: 2024-10-12 17:29:41

一个with as的oracle应用的相关文章

如何教你快速通过一个cmd命令启动Oracle的两个相关服务

你安装好了Oracle数据库之后. 它都会默认开机自启服务. 而我们为了节省电脑资源就把它给调为手动. 我们调为手动之后以后要用到Oracle数据库就必须再去服务里面一个一个去启动. 这样是不是很麻烦? 我现在告诉你一个很方便得快捷方法.我也是偶然才发现的哦. 直接在cmd命令敲 startuporcl 就可以启动相关的两个orcl服务.然后关闭命令就是 shutdownorcl . 我想朋友肯定会问这个命令是怎么定义的?其实就是你命名批处理文件名的时候你写的什么就是什么. 注意:批处理文件命名

强制获取序列下一个值/当前值(oracle函数)

推荐 作者:靓仔小伙计 作者:周公 oracle创建序列: 先假设有这么一个表: create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2(40) not null, DepartOrder INT default 0, constraint PK_S_DEPART primary key (DepartId) ); 在Oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的

一个例子讲通Oracle All子查询

问题: 查询出比所有销售员的工资都高的员工姓名,工作,工资. 分析: ANY可以表示任意的,但这个问题要求比所有销售员工资都高,那么就要使用另外一个关键字ALL. ALL与关系操作符一起使用,表示与子查询中所有元素比较. 代码演示:ALL子查询 <span style="font-size:18px;">SQL> SELECT ENAME,JOB,SAL FROM EMP 2 WHERE SAL>ALL (SELECT SAL FROM EMP WHERE JO

分享一个LINUX下备份ORACLE到本地磁盘的脚本EXP,保留7天

请不要把备份脚本也放到backup_dir下,加到crontab里定时运行 #!/bin/sh   export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1    export ORACLE_SID=orcl    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK    export PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/loc

windows Server 2008 64位机器装了一个10g客户端,Oracle数据库连接不上问题解决。

windows Server 2008 64位机器装了一个10g客户端,32和64位不清楚 用Netmanager里面的服务名连.Data Source=o10ga;user id=DJZD;password=cy2015;直接显示Tns12514错误,库连接不上... 若改用 Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.72.5.13) (PORT=1521))(ADDRESS=(PROTOCOL

判断一个数据是否存在于一个表中,Oracle中写自定义函数

create or replace function isExist(data in DataTypes) --DataTypes 为表中该数据的类型return Numberisv_flag number(2);v_data [DataTypes]; --表中数据的类型beginselect data into v_data from table_name where ....;if v_data not null then v_falg := 1;else v_flag :=0;end if

Oracle 11g数据库详解(2015-1-18更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

深入理解Oracle RAC 12c

深入理解Oracle RAC 12c(顶尖专家权威指南唯一最新版数据库著作 Oracle第一社区技术大牛翻译 Amazon五星推荐) [美]Syed Jaffar Hussain(赛义德 贾法尔 侯赛因),Tariq Farooq(塔里克 法鲁克),Riyaj Shamsudeen(瑞亚吉沙姆斯丁),Kai Yu(于凯) 著   赵燚 梁涛 程飞 李真旭 译 ISBN 978-7-121-24066-9 2014年10月出版 定价:99.00元 488页 16开 编辑推荐 <深入理解 Oracl

Oracle Instance

文章为学习汇总网上资料 instance = 内存结构(SGA,system global area) +后台进程 内存结构 = 共享池+数据高速缓存+重做日志缓冲区+其他 后台进程 = DBWn(database writer n个)+LGWR(log writers)+SMON(system monniter)+PMON(progress moniter)+CKPT(checkpoint)+-- PGA(Program Global Area)= 服务器进程+后台进程 下面分别介绍各部分: