MS SQL Server 2008 R2 にはテーブル Foo があり、Foo の挿入と更新のたびに、日付、ユーザー、PK FooId、および 1 つの数値を含む Foo の他のいくつかの列も FooAuditLog に挿入します。それをcxpと呼びます。
ここで、特定の FooId の cxp に対する経時的な変更履歴を取得する必要があります。しかし、cxp を変更せずに Foo を保存することは可能であり、それらの値を無視する必要があります。
たとえば、特定の Foo (つまりselect date, user, cxp from FooAuditLog where fooId=17
) の監査ログ エントリが次のようになっているとします。
Date User Cxp
-------------------------
10/26 Fred 42
10/28 George 38
11/7 Tom 38
11/9 Fred 38
11/12 Joe 33
11/14 Tom 33
11/18 George 38
次に、次のみを返すようにクエリを変更する必要があります。
Date User Cxp
-----------------------------
10/26 Fred 42
10/28 George 38
11/12 Joe 33
11/18 George 38
11/7、11/9、11/14 のエントリは無視してください。を検討しましたselect distinct (cpx) ... group by date
が、値が以前の値に戻るエントリをキャプチャする必要があります。