を持つレコードでカバーされていない時間のギャップが、私は料金レコード(f_fee_item)のテーブルを持っている検索:次のように開始日と終了日
Fee_Item_ID int
Fee_Basis_ID int
Start_Date date
End_Date date
(無関係な列は削除)
は、レコードのことを想定します同じFee_Basis_IDは重複しません。
各Fee_Basis_ID
の手数料レコードの各ギャップのStart_DateとEnd_Dateを、@Query_Start_Date
と@Query_End_Date
の間で見つける必要があります。手数料が課金されていないすべての期間の手数料を計算するには、このデータが必要です。
また、Fee_Basis_ID(Fee_Basis_IDは、D_Fee_Basis.Fee_Basis_IDへの外部キーです)があれば、料金レコードが全くない場合はレコードを返すクエリが必要です。
例えば:
@Query_Start_Date = '2011-01-01'
@Query_Start_Date = '2011-09-30'
D_Fee_Basis:
F_Fee_Item
1
2
3
F_Fee_Item:
Fee_Item_ID Fee_Basis_ID Start_Date End_Date
1 1 2011-01-01 2011-03-31
2 1 2011-04-01 2011-06-30
3 2 2011-01-01 2011-03-31
4 2 2011-05-01 2011-06-30
必要な結果:
Fee_Basis_ID Start_Date End_Date
1 2011-07-01 2011-09-30
2 2011-04-01 2011-04-30
2 2011-07-01 2011-09-30
3 2011-01-01 2011-09-30
私はそれを稼働させようと努力しているが、運がないためにさまざまな自己結合を試みてきた。
助けてください!ここで
'F_Fee_Itemを持っているどのように多くのレコード'テーブル? –
システムの寿命の間、5桁未満のままになることが予想されます。 – Aphillippe