2010-03-22 150 views
0

我正在嘗試開發一些只能提取最新信息的代碼。T SQL WHERE子句

當用戶進入一個表單有一個子表時,每次他們改變它在柱上創建一個名爲type12_OriginalNoteID的新行時,它將自己的唯一編號放入其中。另一個名爲type12_OriginalNoteID的字段保持相同的編號 - 這是在做出任何更改之前都會記錄原始數字的內容。 我確實有一些代碼可以提取最新的信息,但如果用戶沒有對錶單做任何更改,它就不會提取任何內容 - 這是因爲type12_OriginalNoteID爲空。

的代碼如下: -

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爲空,則添加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