У меня есть структура таблицы, как показано ниже:
Account Number | Transaction Type | Transaction Date | Bill Due Date | Transaction Number | Transaction Amount
---------------|--------------------|--------------------|----------------|--------------------|-------------------
1 | B | 7/03/2019 | 7/04/2019 | 1 | $82.68
1 | P | 12/03/2019 | 30/12/3999 | 2 | $819.31
1 | B | 22/02/2019 | 25/03/2019 | 3 | $919.46
2 | B | 3/04/2019 | 4/05/2019 | 1 | $134.21
2 | P | 8/04/2019 | 30/12/3999 | 2 | $361.10
2 | P | 13/04/2019 | 30/12/3999 | 3 | $885.79
3 | B | 6/03/2019 | 6/04/2019 | 1 | $228.73
3 | P | 11/03/2019 | 30/12/3999 | 2 | $939.31
3 | B | 31/03/2019 | 1/05/2019 | 3 | $630.37
4 | B | 20/04/2019 | 21/05/2019 | 1 | $915.31
4 | P | 25/04/2019 | 30/12/3999 | 2 | $538.94
4 | B | 2/04/2019 | 3/05/2019 | 3 | $85.28
Мне нужно рассчитать задолженность по каждому счету, а затем состарить его, т.е. посчитайте, сколько лет этой задолженности. Я тогда ведро это по возрасту (0-30,31-60,60-90,90 +). Если платеж сделан, это процесс «первым пришел - первым обслужен» (самые старые долги выплачиваются первыми). Когда платеж сделан, срок оплаты счета 3999-12-31
Я построил это с помощью SAS, так как разработал автомобиль с кредитным рейтингом, но теперь мне нужно реализовать его в SQL Server 2017. Я бы использовал Retain Etc из SAS, но пока не нашел функции в t-sql, которая может этот.
Это вообще возможно?
Я использовал скользящие суммы (-bill (B), + Pay (P)), но я борюсь со старением задолженности и ведением их.
Я также должен посмотреть на снимки и затем рассчитать мои переменные моделирования по ним (для этого я использую аналитические оконные функции).
Я также пробовал оконные функции со старением, но я просто не могу воспроизвести выходные данные из сценария SAS, который я разработал.
Любая помощь будет принята с благодарностью.
Таблица индексируется по номеру счета и транс. Имеет около 2 миллионов уникальных номеров счетов и 500 миллионов транзакций
Вывод будет выглядеть следующим образом: