我有两个表TblEnquiry,其中查询_No为主键,tblHistory用于维护更新详细信息,其中Enquiry_No为外键,History_CreatedOn字段为日期。 我希望获得自过去7天以来未更新的查询。
答案 0 :(得分:3)
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 :(得分:1)
如果您使用的是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()
)
答案 2 :(得分:0)
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查询的性能不佳
答案 3 :(得分:0)
得到了答案
选择h1.Enquiry_No 来自tblHistory h1 分组由h1.Enquiry_No 有DATEDIFF(DD,Max(h1.History_CreatedOn),GETDATE())&gt; = 7
我收到了自过去7天以来未更新的查询