2013-04-11 28 views
0

SQL Server 2008 R2 我以前發佈並收到了我的問題的完美答案。但是現在我的客戶想要爲查詢添加其他內容。SQL查詢列出不活動記錄加上列表最後一個相關記錄

我有兩個表。我需要一份不活動報告(我已經能夠創建),其中主表在x天的註釋表中沒有相關記錄。

現在我需要將最後一個註釋的日期添加到此查詢中。

這裏是我的表結構:

Main Table FIELDS > file_number, sysid 

Notes Table FIELDS > note_date, main_id 

這裏是我當前的查詢:

SELECT * 

FROM 
    db.main m 
    LEFT OUTER JOIN db.notes n 
ON m.sysid = n.main_id 
AND CONVERT(VARCHAR(10),DATEADD (day, (n.[date]), '1800-12-28'), 101) > dateadd(dd, -14, getdate()) 
WHERE n.main_id is null 
+0

你有什麼錯誤嗎? – DevelopmentIsMyPassion 2013-04-11 18:10:20

+1

有什麼問題? – 2013-04-11 18:10:54

+0

問題是我需要將最後一個註釋日期添加爲列。因此,如果主記錄在過去14天內有100個記錄而沒有記錄(以上給出的清單),最後一個記錄的日期是什麼。 – 2013-04-11 18:30:18

回答

0

如何:

SELECT 
    * 
FROM 
    db.main m 
LEFT JOIN 
    (
     SELECT 
      main_id 
      , MAX(n.[DATE]) LastNote 
     FROM 
      db.notes 
     GROUP BY 
      main_id    
    ) n 
    ON 
    n.main_id = m.sysid 
WHERE 
    (
     n.main_id IS NULL 
     OR 
     DATEDIFF(DAY, n.LastNote getdate()) > 14 
    ); 

主要記錄和最後一個音符日期地方如果最後一個音符超過14天,或者根本沒有音符,則爲空白lastDate。