有没有办法在 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
。
我有两张桌子
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
。