繁体   English   中英

有没有办法在 ORACLE SQL 中向视图添加列?

[英]Is there a way to add a column to a view in ORACLE SQL?

我有两张桌子

1.TABLE_STOCK 包含Product_ID (主键)和Product_unit_price 列

2.TABLE_SALES 列Product_ID (外键)和Sales_unit_price

现在我想创建一个基于 Product_ID 连接两个表的视图,并向视图添加列PROFIT (应该是 Sales_unit_price 和 Product_unit_price 之间的差异)。

有没有办法向视图添加列(PROFIT)?

您可以按照您已经描述的方式进行操作。

CREATE OR REPLACE VIEW V_PRODUCT
AS
   SELECT K.PRODUCT_ID,
      K.PRODUCT_UNIT_PRICE,
      S.SALES_UNIT_PRICE,
      S.SALES_UNIT_PRICE - K.PRODUCT_UNIT_PRICE AS PROFIT
 FROM TABLE_STOCK K
      INNER JOIN TABLE_SALES S ON S.PRODUCT_ID = K.PRODUCT_ID

你可以有没有销售的库存(但可能没有一些库存就没有销售)。 因此,我认为您需要一个outer join

CREATE OR REPLACE VIEW V_PRODUCT AS
   SELECT st.PRODUCT_ID, st.PRODUCT_UNIT_PRICE,
          s.SALES_UNIT_PRICE,
          (s.SALES_UNIT_PRICE - K.PRODUCT_UNIT_PRICE) AS PROFIT
   FROM TABLE_STOCK st LEFT JOIN
        TABLE_SALES s
        ON S.PRODUCT_ID = st.PRODUCT_ID;

如果您可以在没有库存的情况下进行销售,您可能需要FULL JOIN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM