我有一個表有三個ID字段,名稱,aDate字段。我想結果在不同的名稱,我希望日期在結果。我使用的查詢作爲SQL Server 2005中的不同查詢
Select distinct(Name),adate from table_name.
但我正在逐漸錯results.i認爲SQL是在這兩個領域的結合底肥不同。我做什麼幫助我。我想要不同的名稱值與他們各自的adate字段。
我有一個表有三個ID字段,名稱,aDate字段。我想結果在不同的名稱,我希望日期在結果。我使用的查詢作爲SQL Server 2005中的不同查詢
Select distinct(Name),adate from table_name.
但我正在逐漸錯results.i認爲SQL是在這兩個領域的結合底肥不同。我做什麼幫助我。我想要不同的名稱值與他們各自的adate字段。
如果你只是想每名ONE日期,那麼你必須指定其中日期:
如:
SELECT Name, Max(aDate)
FROM table_name
GROUP BY Name
由於此語句使用GROUP BY Name
它只會返回一個行每個名稱。由於它使用aDate的聚合(在我的示例中爲MAX()
函數),它將返回所需的相應日期。
一般來說,您應該儘量避免使用DISTINCT關鍵字。很少有正確的方法。
如果你只是想在你的表使用不同的名稱的列表,你可以使用
SELECT DISTINCT Name
FROM table_name
這將返回相同結果
SELECT Name
FROM table_name
GROUP BY Name
Distinct不能在一個字段上工作,它在查詢中的整行字段中起作用。 所以你所問的沒有意義。
如果你的表中有這樣
|ID|Name|Date|
|1|John|2011-4-1|
|2|John|2011-4-2|
|3|John|2011-4-2|
行那麼當你調用Select distinct name, date
什麼是你期待在日期欄看?
你需要決定哪個日期。
是他們執行不同的任何其他方式在一個字段 – sumit 2011-04-01 12:19:26
+1。究竟。最大值,第一,最後,無論如何....但你需要決定什麼顯示在非分組字段。 – TomTom 2011-04-01 12:24:09