WITH high_value_items AS (SELECT I_ID, I_NAME, I_PRICE FROM ITEM WHERE I_PRICE > 50), stock_of_high AS (SELECT S_W_ID, S_I_ID, S_QUANTITY FROM STOCK WHERE S_I_ID IN (SELECT I_ID FROM high_value_items)), orders_of_high AS (SELECT OL_W_ID, OL_I_ID, SUM(OL_AMOUNT) AS rev FROM ORDER_LINE WHERE OL_I_ID IN (SELECT I_ID FROM high_value_items) GROUP BY OL_W_ID, OL_I_ID) SELECT hvi.I_ID, hvi.I_NAME, hvi.I_PRICE, sh.S_W_ID, sh.S_QUANTITY, COALESCE(oh.rev, 0) AS revenue FROM high_value_items hvi JOIN stock_of_high sh ON hvi.I_ID = sh.S_I_ID LEFT JOIN orders_of_high oh ON hvi.I_ID = oh.OL_I_ID AND sh.S_W_ID = oh.OL_W_ID;
0 commit comments