2016-04-25 12 views
0

12ヶ月すべてをレコードとして保管し、さらに2つの列processDateと完了したテーブルがあります。 processDateフィールドはプロセスが毎月実行する日付です。このフィールドは毎年1回更新されます。他の列「completed」は、プロセスが毎月processDateの日付で実行を完了すると、trueに変更されます。テーブルのMAX(日付)より前のレコードを取得

私は、完了したすべての12個のレコードのprocessDateを返すmaxクエリを持っています。

日は

SELECT MAX(processDate) FROM refreshProcessdates WHERE completed = 'True' 

がどのように私は月が前にいることを、最大processDateより1少ないレコードを返すことができ、最大(processDate)に先立って私が希望ですか?

SQL Server Express 2008

+0

明確にしてください。最終実行前の各月の日付または前回の実行日?後で 'AND processDate <(SELECT MAX(processDate)FROM refreshProcessdates WHERE completed = 'True')を追加するだけです。 ' – Adwaenyth

+0

これは前回の実行が必要な日付です。 – htm11h

+0

それは私がそのように認められるように、あなたのコメントを回答として追加していただきありがとうございます。 – htm11h

答えて

2

最も簡単な方法は、このようなものです。 where句で最初の結果を除外するだけです。

SELECT MAX(processDate) FROM refreshProcessdates WHERE completed = 'True' 
AND processed date <> (SELECT MAX(processDate) FROM refreshProcessdates 
WHERE completed = 'True') 
関連する問題