Подсчитать предыдущие 24 месяца строк на основе условия из текущей строки - PullRequest
0 голосов
/ 18 февраля 2020

Как подсчитать предыдущие 24 месяца из текущей строки на основе принципаrelreliefflag (он должен основываться на каждой строке (каждый месяц с предыдущими 24 месяцами). Поэтому подсчитайте главный флаг (Y) от текущей строки до предыдущих 24 месяцев.) ?

Данные, которые у меня есть:

enter image description here

Мне нужны данные:

enter image description here

Код:

       -------------------------------------------------------------------------
----Identify customers who are on principal relief more than one month
-------------------------------------------------------------------------

IF OBJECT_ID('tempdb..##PRappliedmorethan_once') IS NOT NULL
    DROP TABLE ##PRappliedmorethan_once
select *,
case when  PrincipalReliefFlag='Y'  then 1 else 0
                                      end  PR_applied_months

 into ##PRappliedmorethan_once
 from ##TL_details_dates2 



 IF OBJECT_ID('tempdb..##PRappliedmorethan_once1') IS NOT NULL
    DROP TABLE ##PRappliedmorethan_once1
select *,
--Identify customers who have applied for principal relief within the past 12 months



sum(PR_applied_months) over    (partition by productitemcode, productcode
                                      order by dim_snapshotdate_key
                                      rows between  23 preceding and current row
                                     )
                                      abcd





 into ##PRappliedmorethan_once1
 from ##PRappliedmorethan_once

Работает, но есть ли лучший способ?

1 Ответ

0 голосов
/ 18 февраля 2020

Попробуйте использовать функцию DATEDIFF(), чтобы проверить последние 24 месяца, например:

SELECT COUNT(*) FROM YOUR_TABLE 
WHERE DATEDIFF(month, current_row_date, date_to_be_compared) <= 24
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...