SQL Query查找其中一个复合主键应该与其他复合主键最大的记录

时间:2012-06-13 05:28:20

标签: sql sql-server-2008 composite

以下是我的表:

PatientID|VisitID|Date|Accident|Diagnosis|Doctor
  1      |    1  |    |        |         | 
  1      |    2  |    |        |         |
  1      |    3  |    |        |         |

PatientIDVisitID都是复合主键。现在我想只显示最后一条记录。换句话说,PatientID = 1VisitID =最大值。

那么查询会是什么?

2 个答案:

答案 0 :(得分:0)

假设VisitID是连续的:

select top 1 * from yourTable
where PatientID=@patientID
order by VisitID desc

其中:@patientID是一个参数(在您的示例中为1

答案 1 :(得分:0)

我办公室的一位高年级学生告诉以下问题,这完全符合我的目标。

select * 
  from tblAccident 
 where PatientID = 1 
   and VisitNo = ( Select Max(VisitNo) from tblAccident where PatientID = 1 )