SQL-запрос; Я хочу получить запрос, который не обновлялся с последних 7 дней - PullRequest
0 голосов
/ 27 января 2010

У меня две таблицы TblEnquiry с запросом _No в качестве первичного ключа и tblHistory для поддержки обновления данных с Enquiry_No в качестве внешнего ключа и полем History_CreatedOn на дату. Я хочу получать запросы, которые не обновлялись с последних 7 дней.

Ответы [ 4 ]

3 голосов
/ 27 января 2010
SELECT e.*
FROM tblEnquiry e
WHERE NOT EXISTS(SELECT * FROM tblHistory h WHERE e.Enquiry_No = e.Enquiry_No AND h.History_CreatedOn >= DATEADD(dd, -7, GETDATE())
1 голос
/ 27 января 2010

Если вы используете SQL Server:

SELECT
     <add columns here>
FROM
     tblEnquiry
WHERE
     NOT EXISTS
     (
          SELECT *
          FROM tblHistory H
          WHERE H.enquiry_no = E.enquiry_no
            AND H.history_createdon BETWEEN DATEADD(dy, -7, GETDATE()) AND GETDATE()
     )
0 голосов
/ 28 января 2010

Получил ответ

выберите h1.Enquiry_No из истории h1 сгруппировать по h1.Enquiry_No с DATEDIFF (DD, Max (h1.History_CreatedOn), GETDATE ())> = 7

Я получил запросы, которые не обновлялись с последних 7 дней

0 голосов
/ 27 января 2010
WITH Hist(enquiry_no, history_createdon) AS
(
    SELECT Enquiry_No, History_CreatedOn
    FROM tblHistory
    WHERE History_CreatedOn >= DATEADD(dd, -7, GETDATE())
)
SELECT * 
FROM tblEnquiry 
    LEFT OUTER JOIN Hist ON tblHist.enquiry_no = tblEnquiry.enquiry_no 
WHERE tblHistory.enquiry_no IS NULL

Это позволит избежать низкой производительности стандартного запроса NOT EXISTS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...