Oracle通用维、父子维相互转换
所谓通用维即维度层级1、2、3均作为字段展示为列,父子维即维度id+父级维度+维度层级字段
lvl_id1 | lvl_name1 | lvl_id2 | lvl_name2 | lvl_id3 | lvl_name3 |
id | parent_id | id_lvl |
oracle通用维转父子维
将顶级机构抽取插入:Insert into dim_org_3 (select distinct org_lvl1_id,org_lvl1_desc,null,null,as_of_date,null from dim_org_lvl where org_lvl1_id is not null)
将2级机构抽取插入:Insert into dim_org_3 (select distinctorg_lvl2_id,org_lvl2_desc,org_lvl1_id,org_lvl1_desc,as_of_date,null from dim_org_lvl where org_lvl2_id is not null)
将3级机构抽取插入:insert into dim_org_3 (select distinctorg_lvl3_id,org_lvl3_desc,org_lvl2_id,org_lvl2_desc,2,as_of_date,null from dim_org_lvl where org_lvl3_id is not null)
oracle父子维转通用维
SELECT A.ORG_ID AS ORG_LVL1_ID,
A.ORG_NAME AS ORG_LVL1_NAME,
B.ORG_ID AS ORG_LVL2_ID,
B.ORG_NAME AS ORG_LVL2_NAME,
C.ORG_ID AS ORG_LVL3_ID,
C.ORG_NAME AS ORG_LVL3_NAME,
D.ORG_ID AS ORG_LVL4_ID,
D.ORG_NAME AS ORG_LVL4_NAME,
E.ORG_ID AS ORG_LVL5_ID,
E.ORG_NAME AS ORG_LVL5_NAME,
F.ORG_ID AS ORG_LVL6_ID,
F.ORG_NAME AS ORG_LVL6_NAME,
NVL(F.ORG_NAME,
NVL(E.ORG_NAME,
NVL(D.ORG_NAME, NVL(C.ORG_NAME,NVL(B.ORG_NAME, A.ORG_NAME))))) AS ORG_NAME,
A.BBQ_||A.USERID_|| NVL(F.ORG_ID,
NVL(E.ORG_ID,
NVL(D.ORG_ID, NVL(C.ORG_ID,NVL(B.ORG_ID, A.ORG_ID))))) AS ORG_ID
FROM DIM_ORG A
LEFT JOIN DIM_ORG B ON B.UP_ORG_ID = A.ORG_ID
AND B.ORG_LEVEL ='1'
LEFT JOIN DIM_ORG C ON C.UP_ORG_ID = B.ORG_ID
AND C.ORG_LEVEL ='2'
LEFT JOIN DIM_ORG D ON D.UP_ORG_ID = C.ORG_ID
AND D.ORG_LEVEL ='3'
LEFT JOIN DIM_ORG E ON E.UP_ORG_ID = D.ORG_ID
AND E.ORG_LEVEL ='4'
LEFT JOIN DIM_ORG F ON F.UP_ORG_ID = E.ORG_ID
AND F.ORG_LEVEL ='5'
WHERE A.ORG_LEVEL = '0';
Oracle通用维、父子维相互转换的更多相关文章
- Oracle通用分页存储过程的创建与使用
Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结 ...
- C#操作SqlServer MySql Oracle通用帮助类
C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...
- Oracle 11g RAC运维总结
转至:https://blog.csdn.net/qq_41944882/article/details/103560879 1 术语解释1.1 高可用(HA)什么是高可用?顾名思义我们能轻松地理解是 ...
- C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)
[前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...
- oracle通用帮助类
需要的dll( EntityFramework.6.0.0Oracle.ManagedDataAccess.12.1.2400System.Configuration.dllEmitMapper.1. ...
- sqlserver,mysql,oracle通用的模拟和改进的全文搜索算法
问:数据库效率最低的地方是什么? 答:表扫描 问:表扫描常见的情况是 答:like '%a%' 这类查询 如果使用全文检索引擎,又无法满足我们的需求的时候怎么办,比如要从 一个商品名称 "农 ...
- Oracle 通用存储过程
CREATE OR REPLACE PROCEDURE P_Pub_GetList ( StrWhere varchar2, ---查询条件(不带where关键字的查询条件) TableName va ...
- oracle 通用事务使用
private void dothing() { OracleConnection con = DBHelperOracle.init(); OracleTransaction tran = con. ...
- 教老婆学Linux运维(一)初识Linux
零.前言 之一 为什么写这个系列?为什么是Linux? 老婆自从怀孕以后,辞职在家待了好几年了,现在时常感觉与社会脱节.所以想找个工作. 做了多年程序员,有点人脉也都基本是在IT圈子里,只能帮忙找找I ...
随机推荐
- 关于eric4和pyqt的入门学习(转)
在Eric4下用PyQt4编写Python的图形界面程序 转载请注明作者RunningOn 本文是PyQt4的入门教程.网上能搜到其它教程,但我觉得讲得不是很清楚,希望这篇文章对入门者更加有帮助. 先 ...
- C++ 创建快捷方式
https://blog.csdn.net/morewindows/article/details/6686683
- java消息服务学习之JMS概念
JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信. ...
- MyBatis笔记(一) 最简单的select
小白学习MyBatis的第一天,学习资料包括MyBatis3的官方文档,以及孤傲苍狼大佬的博客.这里先致敬大佬. · 首先,什么是MyBatis? 引用官网的一段话,“MyBatis 是一款优秀的持久 ...
- Delphi的TService 服务路径获取 Dll中获取文件路径
研究delphi服务的路径,试了好几个方法 ,都没取出来,最后发现,要采用取DLL路径的方法 //一.获取Dll自身路径 //1)方法一: Function GetDllPath(sDllName:s ...
- datasnap 的HTTP 调用返回JSON
datasnap 相关设置,就不细说了,直接上函数 uses System.JSON function TServerMethods.Updatehello: Tjsonobject; var tem ...
- 终于有人把云计算、大数据和 AI 讲明白了
最近学习hadoop以及生态,顺便看到了这篇文章,总结的很到位,转载下. 我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之 ...
- Bigger-Mai 养成计划,Python基础巩固一
本日复习内容 Py2与Py3的区别:Py2:print()直接写字符串,不用加括号Py3:print()必须加括号,某些库改名了.还有谁不支持Py3:Twisted:具体能感知的大改动并不多 老生常谈 ...
- 工作中常用的 Shell 命令及技巧
调试 bash 脚本的技巧 加 -x 参数运行 bash 脚本时,会显示执行的语句 # 也可以在 demo.sh 中加上 set -x bash -x demo.sh 设置环境变量,然后通过如上方式运 ...
- loj#2020 「AHOI / HNOI2017」礼物 ntt
loj#2020 「AHOI / HNOI2017」礼物 链接 bzoj没\(letex\),差评 loj luogu 思路 最小化\(\sum\limits_1^n(a_i-b_i)^2\) 设改变 ...