SQL-запрос: возвращаемое значение, начиная с 28 дней с даты параметра до 56 дней после даты параметра - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть запрос, который позволяет мне возвращать количество событий по EventID, которые происходят с даты параметра (@STARTDATE) до 28 дней назад.Я хотел бы иметь возможность возвращать количество событий, произошедших за предыдущие 28 дней.

COUNT (DISTINCT (CASE when EventID between  DATEADD(YEAR,-0,DATEADD(DAY, DATEDIFF(DAY, 0, @STARTDATE), -28)) and DATEADD(Year,-0,@STARTDATE) then EVentID END)) TwentyEightDays

Мне нужно иметь возможность выполнить аналогичный запрос, где счетчик EVENTID начинается через 29 дней с @STARTDATE.до 56 дней после @STARTDATE.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Числа были в обратном порядке, но этот запрос работал:

COUNT (ОТЛИЧИТЕЛЬНЫЙ СЛУЧАЙ, КОГДА Eventdate> = DATEADD (день, -56, @StartDate) И дата события <= DATEADD (день, -29, @StartDate) THEN EventId END) </p>

Спасибо Гордону за эту помощь!

0 голосов
/ 08 апреля 2019

Для подсчета событий за 28 дней до определенной даты, я бы использовал:

COUNT(DISTINCT CASE WHEN eventdate >= DATEADD(day, -28, @StartDate) AND
                         eventdate <= @startdate
                    THEN EventId
               END) as TwentyEightDays

В течение 29 дней до 56 дней после:

COUNT(DISTINCT CASE WHEN eventdate >= DATEADD(day, 29, @StartDate) AND
                         eventdate <= DATEADD(day, 56, @StartDate)
                    THEN EventId
               END)

Примечание. Предполагается, чтоу вас есть столбец для указанной даты.Я сомневаюсь, что это EventId.

...