使用日期检查获取列的不同值

时间:2015-05-11 14:38:52

标签: sql sql-server-2008

我有一个表ErrorLog,其中包含以下字段

Id - Primary key 
Message- varchar(200) 
CustomerId - int 
CreatedDate - DateTime

每次登录用户收到错误时,都会记录在ErrorLog表中。

现在我想要获取不同的消息以及所有其他字段,其中CreatedDate等于getdate()-1

例如: 如果我在我的表中有这些值 enter image description here

然后我应该输出

enter image description here

查询后

我无法通过CreatedDate获取不同的消息值。任何想法如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您需要一个ROW_NUMBER才能找到每封邮件的最新行:

select Id, Message, CustomerId, CreatedDate
from 
 (
   select Id, Message, CustomerId, CreatedDate,
      row_number () 
      over (partition by Message
            order by CreatedDate desc) as rn
   from ErrorLog
   where your-condition-here
 ) as dt
where rn = 1