0

SQL Server 2008 R2 以前に投稿し、問題に対する完全な回答を受け取りました。しかし今、クライアントはクエリに何か他のものを追加したいと考えています。

私は2つのテーブルを持っています。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 に答える