2013-04-17 32 views
1

嗨我想在物種數據庫上運行查詢。我想查詢獨特的值,但也發現物種第一次被發現的那一年。MS Access SQL找到一個值第一次出現

到目前爲止,我有這樣的:

SELECT DISTINCT [Genus_HeTR] & " " & [Species_HeTR] AS Species 
FROM HeTR_Rec 
WHERE [Species_HeTR] <> "sp." 
UNION SELECT DISTINCT [Genus_HeOP] & " " & [Species_HeOP] AS Species 
FROM HeOP_Rec 
WHERE [Species_HeOP] <> "" 
AND [Species_HeOP] <> "sp."; 

我串接屬和種的名稱,並從兩個不同的表添加數據(因此UNION)。這提供了一個物種清單,但我想知道在這個地方看到物種的一年。

回答

1

我會冒險猜測你的源表格包含一個日期/時間字段,其中存儲了每個觀察日期。如果是這樣,您可以從2個表中獲取UNION數據,並將其用作GROUP BY查詢中的子查詢源,從中獲取每個物種的最小觀測年份。

SELECT 
    sub.Species, 
    Min(sub.observation_year) AS first_sighting_year 
FROM 
    (
     SELECT 
      [Genus_HeTR] & " " & [Species_HeTR] AS Species, 
      Year(observation_date) AS observation_year 
     FROM HeTR_Rec 
     WHERE [Species_HeTR] <> "sp." 
     UNION ALL 
     SELECT 
      [Genus_HeOP] & " " & [Species_HeOP] AS Species, 
      Year(observation_date) AS observation_year 
     FROM HeOP_Rec 
     WHERE [Species_HeOP] <> "" 
     AND [Species_HeOP] <> "sp." 
    ) AS sub 
GROUP BY sub.Species; 
+0

HansDown最好。感謝Hans。你假設我在那裏有一年是對的。然而,它是在另一張桌子上舉行的(場合是時間日期天氣等,記錄包含着各個物種),我只是做了一個獨立的查詢並在上面的代碼中使用它來代替原始表格。雖然工作像一個魅力。再次感謝。 –

+0

我從HansDown笑了起來。謝謝你,Birdkin。 :-) – HansUp

+1

這裏全周;) –