我有以下表格:試圖修復SQL查詢兩個表
進入
的EntryID - 詮釋
EntryDate - 日期時間
小時
的EntryID - 詮釋
InHour - datetime
OutHour - datetime
對於在條目表中的每個註冊表,應該有至少一個(可能是許多)登記冊上的小時表中,如下所示:
條目
的EntryID:8
EntryDate:9/9/2010 12點31分25秒
小時
的EntryID:8
InHour:2010年9月9日12點31分25秒
OutHour:2010年9月9日18時21分19秒
現在,這些信息存儲在2個相同的數據庫中,一個在本地機器上,一個在服務器上。我試圖編寫一個查詢,該查詢將刪除已經傳遞給服務器的所有信息,條件是沒有OutHour(null)的註冊表不會被刪除。
我寫了下面的查詢:
DELETE from [dbo].[Entry]
WHERE [dbo].[Entry].[EntryID] IN (SELECT [EntryID]
FROM [LINKEDSERVER].[MYDATABASE].[dbo].[Entry])
AND [dbo].[Entry].[EntryID] IN (SELECT [EntryID]
FROM [dbo].[Hour]
WHERE [OutHour] IS NOT NULL)
DELETE from [dbo].[Hour]
WHERE [dbo].[Hour].[InHour] IN (SELECT [InHour]
FROM [LINKEDSERVER].[MYDATABASE].[dbo].[Hour])
AND [dbo].[Hour].[OutHour] IS NOT NULL
AFAIK,該查詢首先檢查在項目表中,並會刪除已經在服務器上,並沒有具有空相應小時註冊表進行任何登記OutHour。但是今天我發現Entry記錄已被刪除,但相應的Hour不是(它有一個空的OutHour)。
我在做什麼錯?任何幫助表示讚賞。
謝謝!