我有一个表有三个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