У меня есть таблица activities
записей активности, например ::
ID | Date | Activity | Participant
---+------------+----------+
1 | 11/30/2011 | Skiing | Alice
2 | 11/29/2011 | Diving | Gary
3 | 10/15/2011 | Running | Therese
и я хотел бы запросить для заданного диапазона дат, какие дни были активными, а какие нет, для каждого участника, например, для 11 / 29-11 / 30,
Date | Activity | Participant
------+-----------+------------
11/29 | | Alice
11/30 | Skiing | Alice
11/29 | Diving | Gary
11/30 | | Gary
11/29 | | Therese
11/30 | | Therese
Мой текущий план состоит в том, чтобы составить таблицу allDates
всех дат в году, взять декартово запрос продукта cartDateParticipant
:
select date,participant from allDates,(select distinct participant from activities) as participants
и оставили присоединиться к этому запросу против activities
:
select a.date, c.activity, c.participant from allDates a
left join
cartDateParticipant c
on
a.date=c.date
and
a.participant=c.participant
, который будет работать, но это означает, что я должен хранить таблицу дат для любого возможного диапазона дат, введенного пользователем. Есть ли способ сгенерировать последовательность дат на лету в Access, не сохраняя ее в виде таблицы? Или есть лучший способ написать этот запрос?
РЕДАКТИРОВАТЬ: клиент наконец уступил и решил, что пустые строки не нужны, поэтому я просто написал его как стандартный запрос.