我有一個表活動條目的activities
,如:如何構建包含日曆範圍內每個日期的Access查詢?
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中隨時生成一系列日期,而無需將其存儲爲表格?或者有更好的方法來寫這個查詢?
編輯:客戶端終於軟化,並決定空白行是不必要的,所以我只是寫它作爲標準查詢。
爲什麼不保留任何可能日期的日期表?你只會創建一次這個表,它不會有那麼多行。一百年只有約36千行。 –
什麼原因有空白的日期/用戶。數據的缺乏就是數據。如果沒有用戶/該日期,則該日期的用戶沒有任何活動。爲什麼創建數據? – xQbert
@ypercube:yours就是答案,即爲什麼當你可以把它放在一個表中並加入它時,就可以隨時生成數據? – onedaywhen