現在、いくつかのデータ テーブルをレポートにまとめようとしています。テーブル内の各レコードは、次のような日付範囲で構成されます。
StartDate EndDate
--------------------
13/04/13 15/04/13
17/04/13 24/04/13
28/04/13 03/05/13
05/05/13 10/05/13
日付範囲が休暇日数のようなものを意味すると仮定すると、1 か月あたりの休暇日数の合計を計算できるようになりたいと考えています。私は、日付範囲が月の境界を越えるときという、エッジケースとは別に動作するように見える DatePart 関数に出くわしました。DatePart 関数は 1 つの特定の日付の月を返すため、2 つの別々の日付に適用されるため、そのエッジ ケース レコード (上記の例ではレコード 3) の休暇日数を決定するためにそれを使用することはできなくなりました。月。
理想的には、最終的なテーブルを次のようにしたい:
Month #OfDays
--------------------
4 11 (1st record - 2, 2nd record - 7, 3rd record - 2)
5 8 (3rd record - 3, 4th record - 5)
各レコードが異なる日を示す一時テーブルを作成し、それに対してクエリを実行するなど、いくつかの厄介なオプションを検討しましたが、これがレポートとどのように結びついているかはわかりません. 現在、私のレポート レコード ソースは (正しくない) クエリです。レコード ソースを返す VBA 関数としてレコード ソースを使用することは可能ですか?
私が考えたもう1つのことは、エッジケースを2つの別々のレコードに分割する最初のクエリを作成し、日付範囲が1か月のみをカバーし、それを最終的なグループ化クエリに使用することでした. それは可能ですか?
この問題にはもっと簡単な解決策があるかもしれないと思いますが、まだわかりません。
誰かが何かアイデアを持っていれば、それは大歓迎です!