如何在视图中使用非列查询oracle中的视图

时间:2014-02-28 06:20:06

标签: oracle view

我创建了一个视图

create or replace view view_emp as 
  select empno, ename, job 
    from emp;

我希望在视图中使用非列查询view_query

select empno, ename 
  from view_emp 
 where deptno=10;

当我试图像这样查询时,它给我一个错误说

ORA-00904: "TEST_EMP"."DEPTNO": invalid identifier

我有一个像这个例子的要求。任何人都可以根据我的要求给我解决方案。


实际上我正在研究ERP解决方案库存模块。

我要求在日期范围内找到明智的,明智的股票期初余额和期末余额。

我想要一个像

这样的视图
create view stk_bal
     as
     select unit_code,prod_code, sum(opening_bal) opening_bal, sum(closing_bal) closing_bal
     from
     (
     select unit_code, prod_code, ob_qty opeing_bal, 0 closing_bal 
     from   (table 1) join (table 1.1)
     where crtd_date between '02-feb-2013' and '02-mar-2013'
     union all
     select unit_code, prod_code,  0 , grn_qty  
     from   (table 2) join (table 2.1)
     where grn_date between '02-feb-2013' and '02-mar-2013'
     union all
     select unit_code, prod_code,  0,  stk_transfer_in_qty 
     from   (table 3) join (table 3.1)
     where stk_trnin_date between '02-feb-2013' and '02-mar-2013'
     )
     group by unit_code, prod_code; 

我创建了一个视图,通过使用3组表来进行联合,其中我对日期进行了硬编码 但我想查询日期范围内的视图,其中没有日期列。

现在我想查询日期范围内的视图stk_bal。

1 个答案:

答案 0 :(得分:0)

您需要在视图定义中添加deptno

create or replace view view_emp as 
  select empno, ename, job
      ,DEPTNO
    from emp;

但当然,真正的问题是:你的要求到底是什么,为什么你需要一个观点。