SQL查询唯一的数据并按时间降序怎么写?

我写的SQL语句是:select distinct sendtoWhom,sendDate from sendChat where sendEmail='aa@sina.com' order by sendDate desc,得到图片的结果,不过我想得到的是按sendDate 降序排列,并且sendtoWhom字段是不重复的;而现在图片结果是虽然降序了,可是sendtoWhom有很多重复,怎样实现得到唯一的值,谢谢?

第1个回答  2012-04-12
Select A.sendtoWhom,
sendDate = Isnull((
Select Top 1 B.sendDate From sendChat B
Where B.sendtoWhom = A.sendtoWhom
And B.sendEmail='aa@sina.com'
Order by B.sendDate Desc
),'')
From
(select distinct sendtoWhom
from sendChat
where sendEmail='aa@sina.com'
order by sendDate desc) A追问

怎么运行后是错误提示:
消息 1033,级别 15,状态 1,第 12 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。

追答

哦 多了个order by sendDate desc。

第2个回答  2012-04-12
对于重复项的日期,你想要哪一个?你可以先试试这个:
select sendtoWhom,'sendDate' = Max(sendDate) from sendChat
where sendEmail='aa@sina.com'
group by sendtoWhom
order by sendDate desc本回答被提问者采纳
相似回答