Как рассчитать в PL / SQL Oracle? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть 2 столбца, каждый столбец имеет 2 строки.Например,

A     B
100   200
200   300

Так что я бы хотел рассчитать вот так

Total A          Total B

200-100 = 100   300-200=100

Показать

Total A     Total B
100         100

Ответы [ 5 ]

1 голос
/ 13 июня 2019

Зависит от того, чем именно вы хотите управлять. Если проблема связана с различием между последовательными строками, использование интеллектуальных оконных аналитических функций lead() или lag() может быть разумным способом:

with t( a, b ) as
(
 select 100, 200 from dual union all 
 select 200, 300 from dual 
), t2 as
(
select lead(a) over (order by 1) - a as "Total A",
       lead(b) over (order by 1) - b as "Total B",
       row_number() over (order by 1) as rn
  from t        
)
select *
  from t2
 where rn = 1;

Total A  Total B    RN
100      100        1
1 голос
/ 13 июня 2019

Использование MAX() и MIN() агрегатных функций:

SELECT MAX(A) - MIN(A) AS "Total A",
       MAX(B) - MIN(B) AS "Total B"
FROM TableName
0 голосов
/ 13 июня 2019

Вы можете запросить это так,

WITH your_table AS 
   (SELECT 100 a, 200 b
      FROM DUAL
     UNION ALL
    SELECT 200 a, 300 b
      FROM DUAL
     ORDER BY 1 DESC)
SELECT SUM(DECODE(ROWNUM, 1, a, -1*a)) TOTAL_A, SUM(DECODE(ROWNUM, 1, b, -1*b)) TOTAL_B
  FROM your_table;
0 голосов
/ 13 июня 2019

Bro, это два понимания вашего вопроса: сначала вы хотите удалить из максимального значения, и какое решение вам предоставил кто-то другой, а другое - вы хотите удалить из последней строки / второй строки. Таким образом, решение предоставляется вам для второго подхода. Пожалуйста, обсудите, если какой-либо запрос.

select sum(Result.A) as A, sum(Result.B) as B, from (
    select top 1 A , B from Table_name order by id_row_order desc
    union all
    select top 1 - A , -B from Table_name order by id_row_order Asc
) as Result
0 голосов
/ 13 июня 2019

Вы можете попробовать это, как показано ниже

Select * , `entity1`-`entity2` As `entity3` 
FROM tbl

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...