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

У меня есть запрос, который позволяет мне вернуть количество событий по 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.

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

Вы не показали запрос. Вы показали выражение, предположительно используемое в предложении SELECT или HAVING.

Gordon Linoff 08.04.2019 01:52
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
442
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы подсчитать события за 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.

Спасибо, я попробовал это, и это, кажется, работает. Спасибо. У меня будет большая база данных, чтобы попробовать завтра, и я отвечу снова. Большое спасибо за помощь.

IrishSQL 08.04.2019 02:00

Сегодня у меня есть большая выборка данных, и она не возвращает результатов. Если у кого-то есть еще предложения, буду признателен. Я собираюсь продолжить исследование этого сегодня.

IrishSQL 08.04.2019 18:52
Ответ принят как подходящий

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

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

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

Другие вопросы по теме