2012-06-13 3 views
0

에 최대를해야한다 기록을 찾을 수 내 테이블 :SQL 쿼리는 복합 기본 키 중 하나가 다음 다른 복합 기본 키

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

모두 PatientIDVisitID 복합 기본 키입니다가. 이제 마지막 레코드 만 보여주고 싶습니다. 즉, PatientID = 1VisitID = 최대입니다.

그래서 쿼리는 무엇입니까?

+0

어떤 DBMS를 사용하고 있습니까? PostgreSQL? 신탁? DB2? –

+0

SQL Server 2008 –

답변

0

VisitID 순차적이라고 가정 :

select top 1 * from yourTable 
where [email protected] 
order by VisitID desc 

: @patientID이 매개 변수 사무실에서 선배의 (귀하의 예제에서, 1)

+0

대단히 고맙습니다 ur.But 목적은 방문 ID가 3 인 단일 레코드를 표시하는 목적으로 다음과 같은 중첩 된 쿼리를 시도했습니다. Select * from tblAccident Where PatientID = 1 AND VisitNo = (VisitNo)에서 PatientID = 1 –

+0

@MuhammadSuleman이 좋다. 나중에 참고할 수 있도록 질문에 대한 대답으로 게시 할 수도 있습니다. –

+0

나를 위로 부탁해 주셔서 감사합니다. –

0

하나입니다 것을, 다음 쿼리를 말했다 내 목표를 완벽하게 충족시킵니다.

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

답변을 선택하십시오. –

+0

위 쿼리를 시도하십시오. –