Есть ли способ добавить столбец в представление в ORACLE SQL? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть две таблицы

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) в представление?

Ответы [ 2 ]

3 голосов
/ 24 февраля 2020

Вы можете сделать это так, как вы уже описали.

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
0 голосов
/ 24 февраля 2020

Вы можете иметь запас без продаж (но, вероятно, без продаж без какого-либо запаса). Следовательно, я думаю, вам нужен 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, если вы можете иметь продажи без запасов.

...