Это актуарный отчет.Логика заключается в том, чтобы рассчитать количество политик, у которых есть потери (с датой потери).
Это EffectiveMMYY
и количество PolicyNumbers
.Это количество полисов, которые мы продали каждый месяц.Я показываю только те, которые имеют претензии на это.
Мы не учитываем Политики, в которых нет потерь.
И это Количество номеров политик по LossMMYY (месяц, когда была зарегистрирована потеря)
У меня есть матрица с
Строки : EffectiveMMYY
,
Столбцы : LossMMYY
,
Значение : SUM(PolicyNumberCount)
Как рассчитать итоговую сумму в SQL для EffectiveMMYY
, чтобы результат выглядел следующим образом:
Пример данных:
DECLARE @Table1 TABLE
(
ID INT,
PolicyNumber VARCHAR(50),
EffectiveDate DATE,
LossDate DATE
)
INSERT INTO @Table1 (ID, PolicyNumber, EffectiveDate, LossDate)
VALUES (1, 'Pol1', '2017-02-01', '2017-02-05'),
(2, 'Pol2', '2017-03-04', '2017-03-18'),
(3, 'Pol3', '2017-03-11', '2017-03-22'),
(4, 'Pol4', '2017-03-11', NULL),
(5, 'Pol5', '2017-03-15', '2017-04-22'),
(6, 'Pol6', '2017-04-18', '2017-04-19'),
(7, 'Pol7', '2017-04-22', '2017-04-29'),
(8, 'Pol8', '2017-04-15', '2017-04-18'),
(9, 'Pol9', '2017-12-15', '2018-01-23'),
(10, 'Pol10', '2017-02-13', '2017-03-11'),
(11, 'Pol11', '2017-02-18', '2017-03-22'),
(12, 'Pol12', '2017-02-17', '2018-01-05'),
(13, 'Pol13', '2017-05-28', '2017-05-30')
SELECT
ID, PolicyNumber,
FORMAT(EffectiveDate, 'MMM') + '-'+ FORMAT(EffectiveDate, 'yy') AS 'EffectiveMMYY',
FORMAT(LossDate, 'MMM') + '-'+ FORMAT(LossDate, 'yy') AS 'LossMMYY',
1 AS PolicyNumberCount
FROM
@Table1
ORDER BY
EffectiveDate
Результат вышеприведенного запроса выглядит следующим образом:
Я пробовал это:
count(PolicyNumber) OVER (partition BY MONTH(EffectiveDate), YEAR(EffectiveDate) order by EffectiveDate ) as runtotEffMonth,
Но это не дало мне правильный результат