У меня проблема с созданием firebird на основе sql, который основан на заданном c алгоритме. Этот алгоритм выглядит следующим образом:
- Полный год рассчитывается по формуле: дата начала + 1 год - 1 день Пример: для даты начала 10.05.2015 год заканчивается 9.05.2016.
- Полный месяц рассчитывается по формуле: дата начала + 1 месяц - 1 день. Пример: для даты начала 9.05.2015, месяц заканчивается 8.06.2015. 3.Если существует более одного периода и непрерывность этих периодов поддерживается, эти периоды рассматриваются как один период. Пример: периоды 01.01.2015 –31.05.2015 и 01.06.2015 –31.12.2015 будут рассматриваться как один период 01.01.2010 -31.12.2010.
- Если два периода перекрываются, включается перекрывающаяся часть один раз. Пример: периоды 01.01.2015–31.05.2015 и 01.05.2015–31.12.2015 будут рассматриваться как один период 01.01.2015–31.12.2015.
- Предполагается, что 30 дней - это один месяц, а 12 месяцы - это один год.
Пример
Первый период - 25.02.2013 - 23.04.2013
- Количество полных лет - 0
- Количество полных месяцев: с 25.02.2013 по 24.03.2013 - 1 месяц
- Количество дней: с 25.03.2013 по 23.04.2013 - 30 дней, 1 месяц.
Сумма дат: 0 лет, 2 месяца, 0 дней.
Вторая дата: 15.10.2013–24.09.2016
- Количество полных лет: с 15.10. 2013 по 14.10.2015 - 2 года
- Количество полных месяцев: с 15.10.2015 по 14.09.2016 - 11 месяцев
Количество дней: с 15.09.2016 по 24.09.2016 - 10 дней
Итого: 2 года 11 месяцев 10 дней Сумма первого периода: 0 лет 2 месяца 0 дней Итого по второму периоду: 2 года 11 месяцев тыс., 10 дней Всего: 2 года, 13 месяцев, 10 дней Всего дат: 3 года, 1 месяц, 10 дней
Кто-нибудь знает, как добраться до этого sql ? Пожалуйста, помогите.