Перегруппировать фильтр даты в хранимой процедуре - PullRequest
2 голосов
/ 13 мая 2019

У меня есть хранимая процедура, в которой я выбираю пару столбцов на основе предоставленного столбца даты. Результат должен быть основан на текущем финансовом году который начинается с 5 января.

Но как мне создать логику для самообновляющегося фильтра даты, который установит начало финансового года автоматически без обновления хранимой процедуры каждый год?

SELECT
    SUM([RetailPrice]) AS Retail,
    SUM([CostPrice]) AS Cost,
    SUM([MarketPrice]) AS Market
FROM 
    PriceDetail
WHERE
    [UserID] = '0029'
    AND [Date] >= CONVERT(DATETIME, '2019-01-05')

1 Ответ

3 голосов
/ 13 мая 2019

Если вы никогда не бегаете в первые пять дней года:

select SUM([RetailPrice]) AS Retail,
       SUM([CostPrice]) AS Cost,
       SUM([MarketPrice]) AS Market
from PriceDetail
where [UserID] = 0029 and
      [Date] >= datefromparts(year(getdate()), 01, 05);

Если вам нужно, чтобы оно работало в первые шесть дней года:

where [UserID] = 0029 and
      [Date] >= datefromparts(year(dateadd(day, -5, getdate())), 01, 05);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...