Как получить дневные разницы и диапазоны финансовых дат, указав дату начала и дату окончания
я застрял в этой точке.
мне нужна помощь для расчета дневной разницы для финансового приложения.
1. две даты в качестве входных данных.
2. диапазон дат будет классифицирован в соответствии с индийскими финансовыми годами (апрель-март)
3. первый диапазон будет начинаться с даты начала. и последний сгенерированный диапазон будет только до даты окончания.
4. дневная разница для каждого генерируемого диапазона.
будущее использование:
5. Далее я могу использовать эту каждую разницу для финансового приложения о точной амортизации активов.
Ввод
@StartDate = 2015-12-12 @EndDate = 2018-12-12
Ожидаемый результат :
srNo startdate(A) EndDate(B) CalculatedDayDiff 1. 2015-12-12 2016-03-31 ==> <Diffrence> 2. 2016-04-01 2017-03-31 ==> <Diffrence> 3. 2017-04-01 2018-03-31 ==> <Diffrence> 4. 2018-04-01 2018-12-12 ==> <Diffrence>
Что я уже пробовал:
я попробовал несколько кодов, но ни один из них не был полностью релевантен для достижения ожидаемого результата.
CHill60
Ваш вопрос не совсем ясен. Может быть, если бы вы дали нам некоторые примеры данных для продолжения и некоторые реальные ожидаемые результаты? Кроме того, не публикуйте код, который не является релевантным
iAnkitBhatt
нет никаких данных. мне нужен ожидаемый результат для выполнения дальнейшей операции, основанной на "ожидаемом выходе" из предоставленных двух дат. опять упрощаю свой вопрос.
1. две даты в качестве входных данных.
2. диапазон дат будет классифицирован в соответствии с индийскими финансовыми годами (апрель-март)
3. первый диапазон будет начинаться с даты начала. и последний сгенерированный диапазон будет только до даты окончания.
4. дневная разница для каждого генерируемого диапазона.
будущее использование:
5. Далее я могу использовать эту ежедневную разницу для финансового применения для амортизации активов за каждый год
Gerry Schmitz
Просто сначала рассчитайте "разницу дат". Затем вы можете рассмотреть другие вещи, так как вы, кажется, слишком растянуты.
iAnkitBhatt
я знаю о функции разницы дат между датами .
но не в состоянии генерировать серии в соответствии с требованиями(например. показано в разделе "ожидаемый результат"), так что в дальнейшем можно использовать этот диапазон для расчета.
Gerry Schmitz
Да, вам, вероятно, нужен "номер актива". И амортизация обычно рассчитывается каждый месяц; и накапливается до тех пор, пока актив не будет амортизирован; и в зависимости от типа актива существуют различные ставки амортизации. Амортизацию обычно хранят в вспомогательной книге активов, которая затем разносится в главную книгу для формирования финансовой отчетности. Обычно я использую C# для этой части.
iAnkitBhatt
Еще одна попытка дана, но почему-то не в состоянии правильно сгенерировать диапазон дат: разница в Днях правильна.
SQL-запрос:
ОБЪЯВЛЯТЬ
@MinDate DATE = '2015-12-12',
@MaxDate DATE = '2018-12-12';
ВЫБЕРИТЕ ПТ.* от (
ВЫБЕРИТЕ ФУТЫ.*,Функция dateadd(день, DayDifference-1, ФТ.Начальная дата) как дата окончания от
(Выберите FiscalYear,Count(UT.dt) как DayDifference ,@MinDate как StartDate
из (выбрать St.ДТ,год(функция dateadd(месяц, -3, ст.ДТ)) как fiscalyear
from(SELECT TOP (DATEDIFF(DAY, @MinDate, @MaxDate) + 1)
Функция dateadd(день, функции row_number() над(приказ.аргумент object_id) - 1, @MinDate) как ДТ
Из представления sys.all_objects крест соединение sys.all_objects Б) как ст) УТ
Group BY fiscalyear) as FT ) PT
ВЫХОД:
FiscalYear DayDifference Начальная Дата Конечная Дата
2015 111 2015-12-12 2016-03-31
2016 365 2015-12-12 2016-12-10
2017 365 2015-12-12 2016-12-10
2018 256 2015-12-12 2016-08-23
Gerry Schmitz
2. диапазон дат будет классифицирован в соответствии с индийскими финансовыми годами (апрель-март)
Простой факт заключается в том, что практически каждая финансовая система использует "таблицу" для управления своими "отчетными периодами / месяцами" для каждого финансового года ... Потому что еще одна функция этой "таблицы периодов" состоит в том, чтобы контролировать, является ли период "открытым" или "закрытым"; т. е.
Таким образом, ваши попытки "обратного расчета" отчетных периодов будут считаться "неприемлемой" бухгалтерской практикой.
Вы должны иметь возможность взять дату, сопоставить ее с таблицей периодов и получить "период", к которому она относится (открытый/закрытый; финансовый год; квартал и т. д.)
iAnkitBhatt
Джерри, спасибо за ответ.
да, я рассчитываю, однако период открыт или закрыт для каждого финансового года, потому что.
в моем приложении есть таблица продуктов с другой датой счета-фактуры и ее возрастом, определяющим аудиторский отчет правительству об амортизации.
и мое требование касается не только периода между финансовыми годами. иногда нам нужно рассчитать амортизацию на основе даты выставления счета или даты использования, которая может быть серединой года. и поскольку кажется, что для расчета линейного расчета амортизации мне нужно изменить стоимость продукта в следующий раз/финансовый год. то же самое может быть возможно в конце даты(возраста), которая может быть серединой года. поэтому просто мне нужны диапазоны дат и дневные различия, чтобы вычислить его.
и есть ограничение на определение любой таблицы для диапазона фискальных дат, и приведенный выше запрос решения будет объединен с другим запросом, как только я достигну этого
но все ,что вы предоставляете, является правильным логическим потоком, если мы хотим управлять таблицей рядов внутри сервера базы данных.