Ошибка деления столбца Oracle SQL - PullRequest
0 голосов
/ 28 июня 2018

У меня есть кусок Oracle SQL, который вызывает и выключает меня. Я заставил его работать один раз сегодня, а затем в следующий раз, когда я попытался запустить его, мне дали команду SQL, которая не была правильно завершена. Все, что я пытаюсь сделать, это разделить один столбец под двумя разными ограничениями.

SELECT start_end_amt,
    in_out_amt
FROM MYTABLE.MYTABLE,
    (
        SELECT sum(start_end_amt)
        FROM MYTABLE.MYTABLE
        WHERE in_out_amt = 'C'
        ) / (
        SELECT sum(start_end_amt)
        FROM MYTABLE.MYTABLE
        WHERE in_out_amt = 'D'
        ) * 100 AS RATIO
ORDER BY RATIO,
    start_end_amt,
    in_out_amt

Однако теперь, когда я запускаю его таким образом, я получаю сообщение об ошибке * 100. Это команда SQL, неправильно завершенная. Насколько я знал, это был правильный способ написать запрос на выборку.

Мой ожидаемый результат - иметь таблицу, которая возвращает процентное соотношение для каждой происходящей транзакции. Один раз, когда это сработало, к сожалению, тоже не вывел процент.

1 Ответ

0 голосов
/ 28 июня 2018

Я думаю, вам просто нужно сгруппировать по идентификатору транзакции и выполнить условное агрегирование. Примерно так:

select transaction_id,
       sum(case when in_out_amt = 'C' then start_end_amt else 0 end) /
          sum(case when in_out_amt = 'D' then start_end_amt else 0 end) * 100 RATIO
  from MYTABLE.MYTABLE
group by transaction_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...