いくつかのリンクされたテーブルがあり、サブテーブルの 1 つに指定された値を持つ行に 3 つの (またはユーザー設定のパラメーター) レコードがあり、順序付けが日付順であるデータのセットを見つけようとしています (別のリンクテーブル)
Table1
ID LinkID Flag
AA1 AA 30
AA2 AA 30
AA3 AA 60
AA4 AA 30
BB1 BB 30
BB2 BB 30
BB3 BB 30
BB4 BB 40
Table2
TA1 CA 2/1/2013
TA2 CA 1/1/2013
TA3 CA 12/1/2012
TA4 CA 11/1/2012
TB1 CB 2/2/2013
TB2 CB 1/1/2013
TB3 CB 12/1/2012
TB4 CB 11/2/2012
他のテーブルはそれらをリンクしますが、リンクされた CA レコードへの AA を取得できます。
AA 30 2/1/2013
AA 30 1/1/2013
AA 60 12/1/2012
AA 30 11/1/2012
BB 30 1/1/2013
BB 30 2/2/2013
BB 30 12/1/2012
BB 40 11/2/2012
最後の 3 つの連続した '30' レコードを含むレコードが必要な場合は BB のみを取得し、最後の 2 つの連続した '30' レコードを含むセットが必要な場合は両方を取得するようにクエリするにはどうすればよいですか? そしてもちろん、最新のレコードに 30 のフラグがないデータについては、そのデータを取得することはありませんか?
ダースほどのテーブルを結合し、最新の 30 に基づいてデータを返し、前のデータを表示する既存のクエリから始めています。この変更のために、私はそれを完全に再編成する必要があると思いますが、私はそれにアプローチする方法についても空白を描いています.上記は私がやろうとしていることを示していると思います.
作業用のSQLは必要ありません(とにかく十分なデータ例を提供していませんでした)が、別の間接的にリンクされたテーブルで見つかった順序に基づいて、指定された値を持つ連続したレコードを見つける方法を示すSQL疑似コードです。さらに言えば、上記の結果セットのように、すべてが 1 つのテーブルにある場合の取得方法です。