2010-02-08 64 views
0

可以說我有一個表,這些領域MSACCESS - 設計查詢GROUP BY週年日期

LeaveDate 
LeaveType 

我想編寫一個查詢由annivesary日期進行分組。

例如說,2月8日

所以今年後2月8日的任何日期將是「2010」和2月8日之前的任何日期將顯示「2009」。

我希望這發生在所有年份的數據。

瞭解??

馬爾科姆

+0

聽起來像你想從一週年紀念日開始寫日期,然後在幾年後取得結果的底線,然後由此組成。儘管如此,從來沒有使用Access進行非平凡的數據庫工作,所以不能告訴你如何做到這一點。 – 2010-02-08 02:57:24

+0

哦,另外,如果你想得到一個有用的迴應,最好發佈相關表的定義以及你希望查詢的輸出結果的例子。 – 2010-02-08 02:59:12

+0

嗯,功能與其他地方一樣:DateDiff()http://office.microsoft.com/en-us/access/ha012288111033.aspx – 2010-02-08 03:03:49

回答

0

你可以創建一個查詢與週年日期,然後由該列組計算列。

1

這裏是我是如何做到的

SELECT Year([tblFoo]![Leave_date])-IIf(DateDiff("d",[tblFoo]![Leave_date],DateSerial(Year([tblFoo]![Leave_date]),2,8))>0,1,0) AS Year_group, Count(tblFoo.ID) AS CountOfID 

FROM tblFoo 

GROUP BY Year([tblFoo]![Leave_date])-IIf(DateDiff("d",[tblFoo]![Leave_date],DateSerial(Year([tblFoo]![Leave_date]),2,8))>0,1,0); 

這計數的記錄每一個「年」的數量。我們使用類似的東西來計算出人與人之間變化的生日。在這種情況下,使用固定的2和8可以替換出生的月份和日期