我有一個將存儲事件的數據庫。每個事件都有不同的活動。該數據庫作出這樣(我知道這是不是最好的數據庫設計,但我什麼是給我的工作):選擇列出了所有活動的最近事件SQL
eventID | date | eventname | activity
___________________________________________
0001 | 01/01/2012 | name1 | activty1
0002 | 01/01/2012 | name1 | activty2
0003 | 01/05/2012 | event2 | activty1
0004 | 01/05/2012 | event2 | activty2
0005 | 01/07/2012 | name1 | activty1
同一個事件可以有多個活動。我可以從事件(活動)獲取所有記錄的唯一方法是通過eventname列。
我想要做的是獲得最後20個事件與它的所有活動。因此,我不能簡單地選擇20行(使用LIMIT
,因爲這不會每次得到20個事件,因爲有些事件有2個活動,其他10個)。
我不能使用SELECT DISTINCT eventname
,因爲某些事件在不同的日期有相同的名稱。我需要的是隻有在日期不同的情況下才有獨特的事件名稱。
我迷失了方向。
謝謝。
您是否想要最近的20個事件,但每個事件名只能表示一次? – 2012-02-24 16:18:35
@ConradFrix我正在尋找20個活動,以及他們的所有活動。我期望獲得代表20個事件的基本記錄數x。 - 希望這是有道理的。 – blo0p3r 2012-02-24 17:01:31
你可以查詢最近20個事件,然後在遊標中循環它們,查找每個事件的所有活動,然後將這些事件插入到一個表對象中,然後返回這些行?可能不是最快的方法,但它會非常簡單。 – Ted 2012-02-24 17:17:26