私はクライアントタイプ履歴テーブルを持っています。実際に監査とクライアントのデータをまとめて見ていますが、tTypeHistoryと呼んでみましょう。また、クライアントIDでグループ化されませんでしたが、読みやすくするために努力していました。私はクライアントの種類がかなり容易に特定の日にあったものを見つけることができその日付範囲内にログインまたはログアウトした日付範囲内でアクティブなタイプを取得する
iClientID | IClientType | dEffectiveDate
1 | 6 | 8/1/2016
1 | 7 | 8/30/2016
1 | 8 | 9/30/2016
2 | 6 | 8/15/2016
2 | 7 | 9/5/2016
2 | 8 | 10/2/2016
3 | 6 | 9/15/2016
3 | 8 | 10/12/2016
::私が今までクライアントタイプ7だった人を見つけることができます
SELECT TOP 1 iClientType
FROM tTypeHistory
WHERE iClientID = 1 dEffectiveDate <= '9/1/2016'
ここ
は、いくつかの例のデータであり、しかし、私がやろうとしているのは、誰が範囲内で、通常は1ヶ月間のタイプ7であるかを特定することですが、特定の範囲になる可能性があります。タイプ7では9/1-9/30の間で有効な日付を検索できましたが、クライアントID 2が見つかりましたが、クライアント1は見つかりませんでした。タイプ8 9/30の8日ですが、10/30などで変更されている可能性があります。
私は答えが分かりにくいはずがないと感じていますが、わかりません。
私はまだ実際のデータに対していくつかのテストを行っていますが、それはあなたのように見えます!それは速かった!私のチームはこれを何時間も費やして無駄にしています。ありがとう!! – RobE
特定のシナリオに対処するための 'where'節の変更に注意してください。 – wdosanjos
ええ、私はそれが可能性のあるケースであると考えました。たとえば、誰かが9/15に7、その後9/16に他のものが登場しましたが、あなたの調整がそのようなケースをキャッチするように見えます。ありがとう! – RobE