Как вернуть результаты в зависимости от дня выполнения запроса в SSMS - PullRequest
0 голосов
/ 17 января 2019

enter image description here У меня есть проблема, которую я не могу обернуть, используя SQL Server. У меня есть прогноз суммы, которая делается на ежемесячном уровне. Мне нужен запрос, который рассчитал бы оставшийся прогноз на основе дня, когда я выполнил запрос. Я пытался с DATEPART, DATEADD, & DATEDIFF, но безуспешно. У кого-нибудь есть способ найти что-то подобное?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Я думаю, что наткнулся на ответ, который искал ... он немного неуклюжий, но достигает того, к чему я стремился - сузить даты от дня выполнения запроса до конца этого месяца: BETWEEN CURRENT_TIMESTAMP AND DATEADD(s, -1, DATEADD(m, DATEDIFF(m, 0, CURRENT_TIMESTAMP)+1, 0))

0 голосов
/ 17 января 2019

По крайней мере, чтобы вы начали «сворачивать голову», вот подход, который можно использовать, предполагая, что вы используете некоторый кодовый «язык» для доступа к базе данных SQL Server. Вот некоторый простой для понимания классический ASP-код для вычисления переменной FractionToUse, который затем может быть использован для умножения в операторе SQL:

FirstDayOfCurMonthDate = DateSerial(Year(Date()), Month(Date()), 1)
CurrentDate = Date()
FinalDayOfCurMonthDate = DateSerial(Year(Date()), Month(Date()) + 1, 1 - 1)

DaysInCurMonthRemaining = DateDiff("D", CurrentDate, FinalDayOfCurMonthDate) + 1
DaysInCurMonthTotal = DateDiff("D", FirstDayOfCurMonthDate, FinalDayOfCurMonthDate) + 1

FractionToUse = DaysInCurMonthRemaining / DaysInCurMonthTotal
...