これがすでにカバーされている場合は、事前に申し訳ありません。
私は特によく構造化されていないデータベースに取り組んでいますが、それはサードパーティによって所有されており、変更することはできません。
テーブル内で次に出現する値を見つけ、その結果に基づいてレコードを返すには、t-sqlの支援が必要です。まずデータについて説明します。わかりやすくするために、これを簡略化しました。
Polref Effective Date Transaction Type Suffix Value
ABCD1 01/06/2010 New Bus 1 175.00
ABCD1 01/06/2011 Ren 2 200.00
ABCD1 19/08/2011 Adjust 3 50.00
ABCD1 23/04/2012 Adjust 4 50.00
ABCD1 01/06/2012 Ren 5 275.00
したがって、2011年のクエリを実行した場合、コードはこの例で接尾辞2、3、4の行を返す必要があります。したがって、私がやろうとしているのは、指定された年の新しいバスまたはRenの最初の接尾辞を見つけることです。次に、同じpolrefの新しいバスまたはRenの次のサフィックスを見つけ、それら2つのサフィックス値を使用してレコードセットを制限します。動作しません!!
2013年のトランザクションがすでにシステムに追加されているため、MAX()を使用できません。実際に必要な数よりも多くのレコードを取得することになります。
この例のデータに期待する結果は次のようになります。
ABCD1 300.00
どんな助けでも大歓迎です。
別の質問に答えるために、レポートを実行する年として2011を選択した場合、2011年の新しいバスまたはRenトランザクションは1つだけである必要があるため、新しいバストランザクションの場合、次のメイントランザクションはRenになります。次の主なトランザクションはRenになります。以下の例でも、2011年に実行すると、2011年1月6日からのRenが見つかるはずなので、そのRenと2つのAdjustレコードを返します。
申し訳ありませんが、私は以前にこのフォーラムを使用したことがないので、少し漠然としていた場合はお詫び申し上げます。
私が使用しているテーブルには多くのpolrefがあるため、日付範囲内にあるすべてのpolrefの合計を計算するには、このコードが必要です。一部のpolrefには、新しいバスという1つの行しかない場合があります。また、ポリシーの年間を通じて行われた調整の数に応じて、多くの行を持つものもあります。