Я использую SQL Server 2014. У меня есть претензий таблица, содержащая итоги претензий в месяц в моей системе:Использование SQL оконную функцию сервера, чтобы получить текущую сумму на финансовый год
+-----------+-------------+------------+
| Claim_ID | Claim_Date | Nett_Total |
+-----------+-------------+------------+
| 1 | 31 Jan 2012 | 321454.67 |
| 2 | 29 Feb 2012 | 523542.34 |
| 3 | 31 Mar 2012 | 35344.33 |
| 4 | 30 Apr 2012 | 142355.63 |
| etc. | etc. | etc. |
+-----------+-------------+------------+
Для доклад, который я пишу, мне нужно создать совокупный общий итог, который сбрасывается до нуля в начале каждого финансового года (в моей стране это с 1 марта по 28 февраля следующего года).
Отчет будет похож на стол, с дополнительным управлением общей колонкой, что-то вроде:
+-----------+-------------+------------+---------------+
| Claim_ID | Claim_Date | Nett_Total | Running Total |
+-----------+-------------+------------+---------------+
| 1 | 31 Jan 2012 | 321454.67 | 321454.67 |
| 2 | 29 Feb 2012 | 523542.34 | 844997.01 |
| 3 | 31 Mar 2012 | 35344.33 | 35344.33 | (restart at 0
| 4 | 30 Apr 2012 | 142355.63 | 177699.96 | for new yr)
| etc. | etc. | etc. | |
+-----------+-------------+------------+---------------+
Я знаю оконные функции являются очень мощными, и я использовал их в зачаточных способах в прошлом получать общие суммы и средние значения, избегая необходимости группировать строки результатов. У меня есть интуиция, что мне нужно будет использовать ключевое слово «previous», чтобы получить текущую итоговую сумму за текущий финансовый год, в который попадает каждая строка, но я не могу понять, как выразить финансовый год как концепцию, используемую в 'previous' (или, если возможно, так можно использовать диапазон дат).
Любая помощь на пути «фразировки» финансового года для «предшествующей» статьи окажет огромную помощь мне, пожалуйста.
Если у вас есть таблицы календаря вы можете сделать это довольно легко, просто присоединиться к этой таблице, а затем разбиения на FiscalYear –
я упускаю что-то? Я ошибаюсь, или вы забыли поставить в свой пример летний тормоз? Поскольку, насколько я могу судить, либо общее количество ID 3 и 4 является неисправным, либо относится к другому году ... – Tyron78
Январь и февраль 2012 года Принадлежащие к 2012 финансовому году, а март и апрель относятся к фискальной год (год, закончившийся февраль 2013 г.). Так что, поскольку у меня есть только янв и февраль 2012 года в моих данных, итоговая сумма - это нетто-сумма Ян для строки Jan, а сумма итогов нетто в январе и феврале для строки Feb. За март (в текущем 2013 финансовом году) общая сумма сбрасывается до нуля, поэтому в марте она учитывает только мартовскую сумму нетто, а апрель подсчитывает итоговые суммы нетто в марте и апреле. Надеюсь, у меня есть смысл, и я не делаю что-то ужасно идиотское. –