Попытка подвести итоги выдачи кредита по месяцам - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь суммировать ежемесячные суммы ссуд по месяцам из таблицы, содержащей данные об уровне ссуд, начиная с конца 90-х годов. Каждый месяц в таблицу добавляются самые последние данные об уровне кредита - поле month_key используется для идентификации самых последних записей. Я хочу сгруппировать даты выдачи кредитов по месяцам и суммировать общие обязательства по кредитам, возникшие в отдельные месяцы. В прилагаемой таблице показано, как я хочу обобщить данные в моем запросе, и код, приведенный ниже, - это то, что я написал до сих пор, - он выводит данные, обобщенные за месяц, начиная с 90-х годов. Спасибо за помощь.

Редактировать : решение JMB сработало. После того, как я добавил поле month_key обратно, отсортировал записи за последний месяц и суммировал исходный остаток по кредиту, я получил нужный результат.

select SUM(INDIVIDUAL_LOAN_BALANCE) AS MONTHLY_LOAN_ORIGINATIONS, ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') AS ORIG_MONTH
FROM LOAN_TABLE
WHERE MONTH_KEY = 202002
group by ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0')
HAVING ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') >= '12-2018'
ORDER BY ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') DESC

Пример того, как я хочу, чтобы запрос отображал данные:

Example for how I want the query to depict the data

Как запрос выводит данные

How the query currently outputs the data

1 Ответ

1 голос
/ 24 марта 2020

Я бы предложил использовать тип данных date для фильтрации, агрегирования и сортировки: это делает вещи намного проще и безопаснее (как правило, ваше предложение where сравнивает строки и не выполняет то, что вы ожидаете). Вы можете обрабатывать форматирование в предложении select.

select 
    sum(individual_loan_balance) as monthly_loan_originations,
    ltrim(to_char(trunc(orig_obgn_date, 'mm'),'mm-yyyy'), '0') as orig_month
from loan_table
where orig_obgn_date >= date'2018-01-01'
group by trunc(orig_obgn_date, 'mm')
order by trunc(orig_obgn_date, 'mm')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...