`

复杂的视图

 
阅读更多
CREATE OR REPLACE VIEW ECC_FST.EMP_STATION_CUST_MAG_V AS
SELECT T.PROD_ID PRODUCT_LINE_ID,
       T.CUSTOMER_ID,
       PLV.PRODUCT_CODE,
       PLV.PRODUCT_LINE_NAME,
       SCM.SALES_CHAN_MANAGER_NAME,                    -- 经营体名称
       SCM.SALES_CHANN_MANAGER_ID,                     -- 经营体ID
       SCM.SALES_CHAN_MANAGER_CODE,                    -- 经营体编码
       CIV.DQD_CODE,                                   -- 大渠道编码
       SCP.SALE_CHANNEL_ID,                            -- 小渠道ID
       SCP.SALE_CHANNEL_CODE XQD_CODE,                 -- 小渠道CODE
       SCP.SALE_CHANNEL_NAME,                          -- 小渠道名称
       CIV.TRADE_ID,                                   -- 工贸ID
       CIV.TRADE_CODE,                                 -- 客户所属工贸code
       CIV.TRADE_NAME,                                 -- 客户所属工贸名称
       T.EMPLOYEE_ID,                                  -- 用户ID
       SE.LOGIN_ID EMPLOYEE_CODE,                      -- 用户编码
       SE.NAME EMPLOYEE_NAME,                          -- 用户名称
       NVL(T.NEXT_EMPLOYEE_ID, 0) AS NEXT_EMPLOYEE_ID, -- 下任人员ID
       NE.LOGIN_ID NEXT_EMPLOYEE_CODE,                 -- 下任人员CODE
       NE.NAME NEXT_EMPLOYEE_NAME,                     -- 下任人员名称
       T.FST_ROLE_LOOKUP_CODE ROLE,                    -- 职位类型
       T.FST_SUBMIT_STATION_ID,                        -- 岗位ID
       T.FST_SUBMIT_STATION_CODE,                      -- 岗位code
       T.FST_SUBMIT_STATION_NAME,                      -- 岗位名称
       CIV.CUSTOMER_CODE,                              -- 客户code
       CIV.CUSTOMER_NAME,                              -- 客户名称
       CIV.SUBTYPE_LOOKUP_CODE,                        -- 日日顺客户1004
       CIV.CUSTOMER_FLAG
  FROM
   (
WITH E_S_C_R AS
(
  SELECT
         SER.EMPLOYEE_ID,
         SER.NEXT_EMPLOYEE_ID,
         SC.FST_ROLE_LOOKUP_CODE,
         SC.FST_SUBMIT_STATION_ID,
         SC.FST_SUBMIT_STATION_CODE,
         SC.FST_SUBMIT_STATION_NAME,
         SCR.CUSTOMER_ID,
         sc.PRODUCT_SERIES_CODE,
         sc.PRODUCT_LINE_ID
  FROM
        ECC_FST.STATION_CONFIG            SC,
        ECC_FST.STATION_EMPLOYEE_RELATION SER,
        ECC_FST.STATION_CUSTOMER_RELATION SCR
  WHERE
        SC.DELETE_FLAG = 'F'
   AND SC.ENABLE_FLAG = 'T'
   AND SER.FST_SUBMIT_STATION_ID = SC.FST_SUBMIT_STATION_ID
   AND SER.ENABLE_FLAG = 'T'
   AND SER.DELETE_FLAG = 'F'
   AND SC.FST_SUBMIT_STATION_ID = SCR.FST_SUBMIT_STATION_ID
   AND SCR.ENABLE_FLAG = 'T'
   AND SCR.DELETE_FLAG = 'F'
)
SELECT EMP_PROD.PROD_ID, -- 产品线ID
       E_S_C_R.EMPLOYEE_ID, -- 当任人员ID
       E_S_C_R.NEXT_EMPLOYEE_ID, -- 下任人员ID
       E_S_C_R.FST_ROLE_LOOKUP_CODE,
       E_S_C_R.FST_SUBMIT_STATION_ID,
       E_S_C_R.FST_SUBMIT_STATION_CODE,
       E_S_C_R.FST_SUBMIT_STATION_NAME,
       E_S_C_R.CUSTOMER_ID
       /*COUNT(*)*/
  FROM E_S_C_R,
       (SELECT SEP.EMP_ID, SEP.PROD_ID
          FROM ECC_OMS.SYS_EMP_PROD SEP
         WHERE SEP.ENABLE_FLAG = 'T'
           AND SEP.DELETE_FLAG = 'F'
         GROUP BY SEP.EMP_ID, SEP.PROD_ID) EMP_PROD
 WHERE
    E_S_C_R.EMPLOYEE_ID = EMP_PROD.EMP_ID
    AND E_S_C_R.FST_ROLE_LOOKUP_CODE = 'YHJL'
UNION ALL
SELECT PL.PRODUCT_ID         PROD_ID, ---产品线id
       E_S_C_R.EMPLOYEE_ID, --用户ID
       E_S_C_R.NEXT_EMPLOYEE_ID, --下任人员ID
       E_S_C_R.FST_ROLE_LOOKUP_CODE    ROLE, ---职位类型
       E_S_C_R.FST_SUBMIT_STATION_ID, -- 岗位ID
       E_S_C_R.FST_SUBMIT_STATION_CODE, ---岗位code
       E_S_C_R.FST_SUBMIT_STATION_NAME, ---岗位名称
       E_S_C_R.CUSTOMER_ID
       /*count(*)*/
  FROM E_S_C_R,
       ECC_FND.BU_PRODUCT_GROUP_PL PL
 WHERE
  E_S_C_R.PRODUCT_SERIES_CODE = PL.GROUP_CODE
UNION ALL
SELECT V.PRODUCT_ID         PROD_ID, ---产品线id
       E_S_C_R.EMPLOYEE_ID, --用户ID
       E_S_C_R.NEXT_EMPLOYEE_ID, --下任人员ID
       E_S_C_R.FST_ROLE_LOOKUP_CODE    ROLE, ---职位类型
       E_S_C_R.FST_SUBMIT_STATION_ID, -- 岗位ID
       E_S_C_R.FST_SUBMIT_STATION_CODE, ---岗位code
       E_S_C_R.FST_SUBMIT_STATION_NAME, ---岗位名称
       E_S_C_R.CUSTOMER_ID
       /*count(*)*/
  FROM E_S_C_R,
       ECC_FND.PRODUCT_LINE_V V
 WHERE
       V.PRODUCT_ID = E_S_C_R.PRODUCT_LINE_ID
   AND NVL(E_S_C_R.PRODUCT_SERIES_CODE,'NVL') = 'NVL'
   AND E_S_C_R.FST_ROLE_LOOKUP_CODE = 'PR'
)t,
       ECC_FND.PRODUCT_LINE_V PLV,
       ECC_CUSTOMER.CUSTOMER_INFO_V CIV,
       ECC_FST.SALES_CHANNEL_PROPERTIES SCP, -- 大小渠道基本信息
       ECC_FST.SALES_CHANNEL_MANAGER_RELATION SCMR, -- 经营体与小渠道关系信息(按产品线)
       ECC_FST.SALES_CHANNEL_MANAGER SCM, -- 经营体基本信息
       ECC_OMS.SYS_EMPLOYEE SE,
       ECC_OMS.SYS_EMPLOYEE NE
 WHERE T.PROD_ID = PLV.PRODUCT_ID
   AND T.CUSTOMER_ID = CIV.CUSTOMER_ID
   AND CIV.XQD_CODE = SCP.SALE_CHANNEL_CODE
   AND SCP.ENABLE_FLAG = 'T'
   AND SCP.DELETE_FLAG = 'F'
   AND SCP.SALE_CHANNEL_ID = SCMR.SALE_CHANNEL_ID
   AND T.PROD_ID = SCMR.PRODUCT_LINE_ID
   AND SCMR.SALES_CHANN_MANAGER_ID = SCM.SALES_CHANN_MANAGER_ID
   AND SCM.ENABLE_FLAG = 'T'
   AND SCM.DELETE_FLAG = 'F'
   AND T.EMPLOYEE_ID = SE.ID
   AND SE.ENABLE = 'Y'
   AND T.NEXT_EMPLOYEE_ID = NE.ID(+);

 

分享到:
评论

相关推荐

    Oracle复杂视图优化案例分析

     Oracle的视图分为简单视图和复杂视图两种,简单视图是从单一的表中获取数据,其中不包含函数和数据组等,复杂视图是指在视图定义中包括了聚合函数、分析函数、用户自定义函数、多表关联、子查询等。此类视图在...

    oracle实验二视图

    本实验涵盖了 Oracle 中的视图概念、创建视图、显示视图的内容、从数据字典视图中选择视图的名字和文本、使用视图查询数据、创建带有条件的视图、显示视图的结构和内容、更新视图、创建复杂视图等内容,为读者提供了...

    oracle创建视图课件

    2. **视图类型**:视图可以是基于单个表的简单视图,也可以是基于多表或包含函数、分组的复杂视图。简单视图通常只包含一个表和基本的SELECT操作,而复杂视图可能涉及多个表、聚合函数、连接等。 3. **视图优点**:...

    sql server视图详解

    2. **复杂视图**:基于多个表的联接操作,可能包含子查询、联接、聚合函数等。 3. **计算视图**:视图中的某些列是通过表达式计算得出的,而非直接来源于基础表的列。 4. **索引视图**:对视图进行了物理存储,以...

    创建mysql数据库视图

    4. **复杂视图** 视图还可以基于其他视图,或者结合多个表。例如,我们可以创建一个展示每个部门平均薪资的视图: ```sql CREATE VIEW DepartmentAverageSalary AS SELECT department, AVG(salary) AS avg_...

    数据库 视图

    - **复杂视图**:数据来自多个表,可能包含函数或数据分组,不一定允许通过视图进行DML操作。 3. **视图的使用**:可以从视图中检索数据,如同从普通表中一样,可以显示整个视图的内容或特定的行和列。 4. **数据...

    Oracle创建视图(View)

    1、简单视图只从单表里获取数据,复杂视图从多表; 2、简单视图不包含函数和数据组,复杂视图包含; 3、简单视图可以实现DML操作,复杂视图不可以。 语法结构:创建视图 CREATE [OR REPLACE] [FORCE|...

    SQLserver 中使用SQL语句创建视图:

    - `stuview4`是一个复杂视图,它结合了多个表(student和sc)的查询结果,通过子查询来获取特定班级所有女生的信息。 - `stuview5`展示了每个学生的所有课程的学号、姓名和总成绩,这是通过连接student和sc表实现...

    swift-iOS高性能异构滚动视图构建方案-LazyScrollView

    在iOS应用开发中,高效的滚动视图是用户体验的关键部分,特别是在处理大量数据或者复杂视图时。`LazyScrollView`是一个针对Swift开发的解决方案,旨在优化性能,实现UI控件的异构滚动。这个框架允许开发者在滚动视图...

    Android 仿小米日历周月视图切换

    在Android开发中,创建一个类似小米日历的周月视图切换功能是一项常见的需求,它涉及到用户界面(UI)设计、...通过这个项目,开发者可以深入理解Android UI框架的工作原理,并掌握如何根据业务需求定制复杂视图组件。

    14.sql.server.2005.视图 14.sql.server.2005.视图

    2. 复杂视图:基于多个表或视图,可能包含子查询、联接或其他复杂操作。 四、使用视图 创建视图后,用户可以通过`SELECT`, `INSERT`, `UPDATE`和`DELETE`语句来操作视图。但需要注意,对视图的操作可能会受到原始表...

    oracle视图的增删改查操作举例[参考].pdf

    例如,创建一个包含出版社名称的复杂视图: ```sql CREATE OR REPLACE VIEW 图书作者出版社(书名, 作者, 出版社名称) AS SELECT 图书名称, 作者, 出版社名称 FROM 图书, 出版社 WHERE 图书.出版社编号 = 出版社....

    oracle第13讲使用视图、索引、序列和同义词[定义].pdf

    - **复杂视图**:包含函数、表达式或分组数据。 - **连接视图**:基于多个表的连接。 - **只读视图**:仅支持查询操作,不允许进行DML(插入、更新、删除)操作。 在视图上执行DML操作时需遵循以下原则: - **...

    Oracle公司内部数据库培训资料11视图.ppt

    - 复杂视图:可能基于多个表,可能包含聚合函数(如MIN, MAX, AVG)、分组(GROUP BY)以及联接操作。 6. **使用临时视图**: 临时视图通常用于会话期间的临时数据处理,仅对当前会话可见,会话结束时自动删除。 ...

    窗口的多视图分割

    6. **性能优化**:在处理大量数据或复杂视图时,需要考虑性能问题。可以通过懒加载、分页、缓存等策略减少内存占用和提升响应速度。 通过`MultiViewDemo`这样的示例项目,开发者可以学习到如何在实际应用中实现这些...

    Oracle 视图讲解

    复杂视图可能包含连接、聚合函数、分组等高级查询元素,如示例中的 `dept_sum_vu` 视图,它显示每个部门的最低工资、最高工资和平均工资。 7. **临时视图** 临时视图是SQL语句中的子查询,它们在会话期间存在,...

    数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf

    简单视图基于单个表,而复杂视图可能涉及多个表的联接、子查询或其他复杂的SQL表达式。视图也可以是可更新的、只读的,或者是物化视图,物化视图会预先计算并存储结果,提高查询效率。 在实际应用中,视图经常与...

    数据库技术与应用 视图-A学习任务书.doc

    1. 视图的基本概念:了解视图的定义、类型(简单视图、复杂视图、可更新视图等)及其在数据库系统中的位置。 2. 创建视图:学习SQL语句`CREATE VIEW`,理解其语法结构,包括指定视图名称、选择字段、来源表等。 3. ...

    Oracle第6章视图和索引操作.pptx

    在PL/SQL中,创建视图更灵活,可以创建简单视图、只读视图、检查视图、连接视图以及复杂视图等。例如,创建一个只读视图可以使用`CREATE OR REPLACE VIEW`语句,后面跟上SQL查询来定义视图内容。修改视图同样需要`...

    透视数据之美:深入理解MySQL中的视图

    2. **复杂视图**:视图可以包含多表连接、子查询等多种复杂的 SQL 操作。 3. **视图的索引**:尽管视图本身不存储数据,但可以通过创建索引来优化查询性能。 #### 五、视图的局限性 虽然视图提供了诸多便利,但也...

Global site tag (gtag.js) - Google Analytics