SQL Server 2008 R2 我之前发布并收到了我的问题的完美答案。但现在我的客户想要在查询中添加其他内容。
我有两张桌子。我需要一个不活动报告(我已经能够创建),其中主表在notes表中没有相关记录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 :(得分: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。