Недавно я получил решение для проблемы, связанной с датами окончания месяца.Теперь я хотел бы знать, есть ли способ предсказать будущие значения, используя сегодняшние данные в качестве ориентира.В качестве фона у меня есть значения данных для каждого дня в течение 90-дневного периода, и меня интересуют только даты окончания месяца.Я хочу иметь возможность просматривать определенный период, даже будущее, и проецировать следующие 3 значения на конец месяца.
Например, для конкретного правила мне нужно рассчитать значения на конец месяца для3/31, 4/30 и 5/31.Это только 3/19.Я хочу использовать приведенный ниже запрос и сказать, что если месяцы не прошли, просто используйте сегодняшнее значение.Если прошло 1 месяц, используйте это значение плюс сегодняшнее значение * 2 и разделите на 3, чтобы получить среднесуточное значение.
/* sample SQL below! */
DECLARE @y INT = Year(Getdate())
DECLARE @RuleBegin DATETIME = (SELECT Datefromparts (@y, 3, 1))
DECLARE @RuleEnd DATETIME = (SELECT Datefromparts (@y, 5, 31))
DECLARE @startDate DATETIME = (SELECT CASE
WHEN Getdate() > @RuleBegin THEN @RuleBegin
ELSE Dateadd(dd, -90, Getdate())
END)
SELECT sub.Instrument,
(Sum(sub.GrossExposure) / 3) AS AvgGrossExposure,
FROM (SELECT EOMONTH(DateField) AS EndOfMonthDate,
DateField,
Instrument,
GrossExposure,
FROM table
WHERE DateField BETWEEN @startDate AND Getdate()
) sub
WHERE sub.DateField = EndOfMonthDate
GROUP BY sub.Instrument