Вот код
select sum(post_sales) from post_sales;
Дает 50 000
select sum(sales) from sales;
Дает 100 000
Я хочу вычесть 100 000 - 50 000
Каков синтаксис для этого в Oracle SQL?
Вы можете поместить это в select
:
select ( (select sum(sales) from sales) -
(select sum(post_sales) from post_sales)
) as diff
from dual;
Рассмотрим следующее:
WITH SS AS (SELECT SUM(SALES) AS TOTAL_SALES FROM SALES),
SPS AS (SELECT SUM(POST_SALES) AS TOTAL_POST_SALES FROM POST_SALES)
SELECT TOTAL_SALES, TOTAL_POST_SALES, TOTAL_SALES - TOTAL_POST_SALES AS SALES_DIFF
FROM SS
CROSS JOIN SPS
Здесь мы используем общие табличные выражения SS
и SPS
для вычисления общего объема продаж и общего объема продаж после публикации. Затем мы выполняем перекрестное соединение этих CTE, каждое из которых гарантированно возвращает одну строку, и, таким образом, перекрестное соединение гарантированно возвращает одну строку, вычисляет разницу, и все готово.
Удачи.