Как добиться ниже кода с использованием Oracle PL / SQL - PullRequest
0 голосов
/ 28 июня 2019

Как я могу достичь ниже, я должен проверить последние 30 дней с последней даты выписки на счет, используя следующую формулу

if ((sum of credits for 30 days from the latest statement date w.r. to account/
sum debits for 30 days from the latest statement date w.r. to account)
-sum debits for 30 days from the latest statement date w.r. to account)>0 then YES else NO

ниже приведены два столбца из двух разных таблиц, на основе которых мне нужночтобы получить формулу для каждого аккаунта.И счета представлены в обеих таблицах A и B.

STATEMENT_DATE_LATEST; --from TableA
LATEST_BAL_IN_USD; -- from TableB

Примечание: "/" делится на, а "-" - знак минус в приведенном выше утверждении

1 Ответ

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

Если бы я правильно понял, помогло бы что-нибудь подобное?

with temp as
  (select a.account,
          sum(case when b.transaction_amount >= 0 then b.transaction_amount end) sum_credits,
          sum(case when b.transaction_amount <  0 then b.transaction_amount end) sum_debits
   from table_a a join table_b b on a.account = b.account
   where b.statement_date > a.statement_date_latest + 30
   group by s.account
  )
select t.account,
       case when (t.sum_credits / t.sum_debits) - t.sum_debits > 0 then 'YES'
            else 'NO'
       end result
from temp t; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...