如何从多个记录中的sql表中选取最新记录?

时间:2015-12-02 11:32:49

标签: sql sql-server sql-server-2008 tsql sql-server-2012

我开发了一个网站,方便律师输入案例详情以及下一个听证日期。每个案例可以有超过1个听证日期。我们假设我们在表格中有 3个案例,每个人都有多个听证会日期,但我想选择每个案例的最后 听证日期,然后我怎么做应该去吗?

我使用了TOP然后MAXselect statement,但没有任何效果。

我的目标是:

pk_Cases_CaseID
CaseNo
CaseTitle
CaseRemarks
CaseNextHearingDate
IsCaseFinalized
CaseEntryDateTime

2 个答案:

答案 0 :(得分:2)

在SQL Server中,典型的方法是使用row_number()。您的问题并没有真正解释数据布局是什么(列名与描述完全不同)。但是,逻辑看起来像:

select h.*
from (select h.*,
             row_number() over (partition by caseno order by hearingdate desc) as seqnum
      from hearings h
     ) h
where seqnum = 1;

答案 1 :(得分:0)

根据您对使用Top和Max的评论,我假设您可能缺少某些分组逻辑。这假设CaseNo对于不同的行是相同的。

  select 
         CaseNo, Max(CaseNextHearingDate)
  from 
         CaseTable
  GROUP BY 
         CaseNo