所谓通用维即维度层级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通用维、父子维相互转换的更多相关文章

  1. Oracle通用分页存储过程的创建与使用

    Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结 ...

  2. C#操作SqlServer MySql Oracle通用帮助类

    C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...

  3. Oracle 11g RAC运维总结

    转至:https://blog.csdn.net/qq_41944882/article/details/103560879 1 术语解释1.1 高可用(HA)什么是高可用?顾名思义我们能轻松地理解是 ...

  4. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  5. oracle通用帮助类

    需要的dll( EntityFramework.6.0.0Oracle.ManagedDataAccess.12.1.2400System.Configuration.dllEmitMapper.1. ...

  6. sqlserver,mysql,oracle通用的模拟和改进的全文搜索算法

    问:数据库效率最低的地方是什么? 答:表扫描 问:表扫描常见的情况是 答:like '%a%' 这类查询 如果使用全文检索引擎,又无法满足我们的需求的时候怎么办,比如要从 一个商品名称 "农 ...

  7. Oracle 通用存储过程

    CREATE OR REPLACE PROCEDURE P_Pub_GetList ( StrWhere varchar2, ---查询条件(不带where关键字的查询条件) TableName va ...

  8. oracle 通用事务使用

    private void dothing() { OracleConnection con = DBHelperOracle.init(); OracleTransaction tran = con. ...

  9. 教老婆学Linux运维(一)初识Linux

    零.前言 之一 为什么写这个系列?为什么是Linux? 老婆自从怀孕以后,辞职在家待了好几年了,现在时常感觉与社会脱节.所以想找个工作. 做了多年程序员,有点人脉也都基本是在IT圈子里,只能帮忙找找I ...

随机推荐

  1. vue配置404页面

    { path:'*', name:"/404", component:cuowu } path星号表示没有这个路由 name表示去这个地址 component这个页面引入的时候叫的 ...

  2. flutter-fluro

    路由传参 route.dart import 'package:fluro/fluro.dart'; //添加页面 import 'package:m/pages/loginPage.dart'; i ...

  3. JZ2440学习笔记之链接文件lds

    如果在Linux环境下用arm-linux-gcc来编译arm程序,需要编写链接文件lds: 1. 运行地址=链接地址,表示代码在SDRAM中执行的地址,如果程序中有对某部分代码执行过搬运,需要在ld ...

  4. oracle SQL性能分析之10053事件

    优化器生成正确执行计划的前提条件是要有正确的统计信息,不准确的统计信息往往会导致错误的执行计划.当通过SQL和基数推断出的执行计划和实际执行计划不同时,就可以借助10053事件.10053事件是用来诊 ...

  5. JSOI2020备考知识点复习

    我太菜了qaq,我好爱咕咕咕啊 在NOIP2018爆炸后,我只能指望着在JSOI2019JSOI2020上咸鱼翻身(flag*1) 所以,我要开始复习学习(flag*2) 此博客文会不定时更新qaq( ...

  6. 结巴库及词频统计bb

    下面是利用云图和结巴库完成词频统计.代码如下: # -*- coding:utf- -*- from wordcloud import WordCloud import matplotlib.pypl ...

  7. CSS3之calc()和box-sizing属性

    box-sizing 属性 规定两个并排的带边框的框: 例子: box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素. 例如,假如您需要并排放置两个带边框的框,可通过将 box-si ...

  8. Bootstrap如何实现导航条?导航条实例详解

    本文主要和大家分享Bootstrap实现导航实例详解,在建设一个网站的时候,不同的页面有很多元素是一样的,比如导航条.侧边栏等,我们可以使用模板的继承,避免重复编写html代码.现在我们打算实现一个在 ...

  9. win10 WSL kali 下载源 --另外 恭喜马哥喜提博客

    第一篇也不知道写什么,就把昨晚安装kali时遇见的事写一下吧! 因为win10应用商店已经加入了kali,也省的我再去网上下载镜像,可下载后  wsl  未能设置为开发人员模式, 这算是失误吧!步骤如 ...

  10. 在微信小程序中将获取到的经纬度(经度纬度)转地址(地名)

    var QQMapWX = require('qqmap-wx-jssdk') var qqmapsdk = new QQMapWX({ key: '填写你的key' // 必填 }) wx.getL ...