0

SQL Server 2008 R2 我之前发布并收到了我的问题的完美答案。但是现在我的客户想要在查询中添加其他内容。

我有两张桌子。我需要一个不活动报告(我已经能够创建),其中主表在 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 
4

1 回答 1

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。

于 2013-04-17T18:01:04.570 回答