несколько строк подсчета на основе диапазонов дат (доступ к базе данных) - PullRequest
0 голосов
/ 05 января 2011

Я могу получить одну строку подсчета из указанного диапазона дат, например:

SELECT table.[EVENT NAME], Count(*) AS [Count]
FROM table
WHERE [EVENT]='alphabetical' And table.DATE>=#11/20/2010# And (table.DATE)<=#11/26/2010#
GROUP BY table.[EVENT NAME];

но как я могу добавить несколько строк с разными диапазонами дат?

[EVENT NAME],[DATE 11/20-11/26],[DATE 11/27-12/3], etc...


EDIT

данные будут выглядеть примерно так

event1;1/11/2010
event1;1/11/2010
event2;1/11/2010
event2;1/11/2010
event2;1/11/2010
event3;1/11/2010
event1;1/12/2010
event1;1/12/2010
event2;1/12/2010
event2;1/12/2010
event4;1/12/2010
event4;1/12/2010

и т.д.

и хотел бы что-то вроде этого (желательно с большим количеством столбцов):

event1;2;2
event2;3;2
event3;1;0
event4;0;2

1 Ответ

2 голосов
/ 05 января 2011

Вы бы использовали группу по пунктам и группу по дате.

Вы не предоставили примерные записи с ожидаемыми результатами, которые помогают нам помочь вам :). Другими словами, пост больше информации .. Но из того, что я могу сказать, вы хотите рассчитывать на основе диапазона дат.

Так что, если у вас было 01.01.2010 с 10 рядами и 1/2/2010 с 20 ссылочными строками и 1/3/2010 с 6 ссылочными строками ... вы хотели бы выводить так:

1/1/2010 10

1/2/2010 20

1/3/2010 6

Итак SELECT COUNT(*), MyDate FROM MyTable GROUP BY MyDate

Чтобы ответить на ваш вопрос о диапазоне дат, подумайте, как работает группировка по группам, она работает, группируя набор данных путем объединения всех наборов, которые соответствуют критериям. Поэтому, когда вы говорите «группировка по дате», она группируется по одной дате. Вы хотите диапазон дат, поэтому каждая строка должна знать или понимать диапазон (от начала до конца). Поэтому вам нужно включить эти столбцы в каждую строку, сгенерировав их с помощью SQL.

Редактировать

Например

SELECT Count(*), DATEADD(day, -10, GetDate()) AS StartDate, DATEADD(day, 10, GetDate()) AS EndDate FROM MyTable GROUP BY StartDate, EndDate

Access имеет аналогичные функции для добавления дней к датам, так что ищите это для MS Access. Затем просто сгенерируйте дату начала и окончания для каждого столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...