2010-03-22 2 views
0

나는 최신 정보만을 가져 오는 몇 가지 코드를 개발하려고합니다.T SQL WHERE 절

사용자가 서브 테이블에 양식을 입력 할 때마다 항목을 변경할 때마다 고유 한 번호를 입력하는 type12_OriginalNoteID라는 열에 새 행을 만듭니다. type12_OriginalNoteID라는 또 다른 필드는 동일한 번호를 유지합니다. 모든 변경이 이루어지기 전에 고유 번호가 무엇인지 추적합니다. 최신 정보를 가져 오는 일부 코드가 있지만 사용자가 양식을 변경하지 않은 경우 아무 것도 표시되지 않습니다. type12_OriginalNoteID가 null이므로이 형식을 변경하지 않아도됩니다. 다음과 같이

코드는 다음과 같습니다 -

WHERE ea.type12_NoteID IN 
    (SELECT TOP 1 ea.type12_NoteID 
    FROM UserAssessv1aidsadaptations ea1 
    WHERE ea.type12_NoteID = ea1.type12_OriginalNoteID 
    ORDER BY ea.type12_UpdatedDate DESC) 

은 다음과 데이터의 예는 다음과 같습니다 : -

type12_note ID   12 
type12_OriginalNoteID NULL 
type12_UpdatedDate  11/03/2010 
아무도 어떤을하지 않은 경우 정보를 표시하는 솔루션이 될 것입니다 무엇

서브 테이블이 바뀌 었습니까? - type12_OriginalNoteID가 null 인 경우 실행할 if 문 추가

답변

1

LEFT JOIN을 사용하여 두 테이블을 조인하면됩니다. 따라서 기본 테이블의 레코드 데이터는 계속 남아 있지만 두 번째 테이블 (하위 테이블)의 필드는 null이됩니다. 성명서는 다음과 같이 표시되어야합니다.

SELECT TOP 1 t1.type12_NoteID 
FROM t1 LEFT JOIN t2 
ON t1.type12_NoteID = t2.type12_OriginalNoteID 
ORDER BY t1.type12_UpdatedDate DESC