这个问题如果你一定构造一个每天库存的VIEW的话,应该有一个日期的驱动表,如下:
CREATE TABLE STOCK_DATE
(STOCK_DATE DATE);
该表中保存了所有需要统计的日期然后,就可以构造VIEW了:
SELECT X.STOCK_DATE, Y.COMPANY, Y.PRODUCT, 
       SUM(INBOUND_QTY)-SUM(OUTBOUND_QTY) STOCK_QTY
  FROM STOCK_DATE X, TABLE1 Y
 WHERE X.STOCK_DATE >= Y.STOCK_DATE
 GROUP BY X.STOCK_DATE, Y.COMPANY, Y.PRODUCT;或者如果你只要查找某一天的库存的话,那就更简单了
SELECT MYDATE, COMPANY, PRODUCT --MYDATE为常量
       SUM(INBOUND_QTY)-SUM(OUTBOUND_QTY) STOCK_QTY
  FROM TABLE1
 WHERE STOCK_DATE <= MYDATE;

解决方案 »

  1.   

    查查看有没类似的函数:
    (a?b:c)
      

  2.   

    create view view1 as select 日期, 作业公司, 货种, sum(进港-出港) from
    table1 group by 日期, 作业公司, 货种
    select * from view1 where 加上日期判断条件即可。
      

  3.   

    这个问题是个典型的进—销—存的问题,实际上在erp中经常涉及的类似的问题,而且统计要复杂的多。因为它的商品类别,工资类别是时间段变化的,可能减少也可能增加,具体情况下可以设计一个类别代码表,但最终多可以归结到这个计算模型下。
      欢迎大家继续讨论这个典型进—销—存的模型!
      

  4.   

    oracle 中提供了decode函数,用于进行单条件判断,大家可以将公司分开讨论,
    即一个公司一个基本表(日期,货种,进港,出港)这样的话,只要进行货种的单条件判断,同时为了统计每天库存情况,最好先做个日期自增长的时间表。欢迎大家继续讨论。