2 つのマイルストーン間の経過時間を計算する目的でデータベースを作成しています。
[ID] [マイルストーン] [MDate] [期間] -------------------------------------------------- ------ 1 1 2013 年 1 月 1 日 [次のマイルストーンが 2 で、両方が同じ ID を持っている場合。 2013 年 1 月 1 日と 2013 年 2 月 1 日の Datediff を計算] 回答: 1 か月] 1 2 2013 年 2 月 1 日 [後続のマイルストーンがない場合、終了日は date() にする必要があります。Datediff= 2013 年 2 月 1 日 vs. Date()] 2 1 2013 年 1 月 15 日 [次のマイルストーンが 2 で、両方が同じ ID を持っている場合。 2013 年 1 月 15 日と 2013 年 2 月 1 日の Datediff を計算] 回答: 18 日] 2 2 2013 年 2 月 1 日 [次のマイルストーンが 3 で、両方が同じ ID を持っている場合。 2013 年 2 月 1 日と 2013 年 2 月 27 日の Datediff を計算] 回答: 12 日] 2 3 2013 年 2 月 27 日 その後にマイルストーンがない場合、終了日は date() にする必要があります。Datediff= 2013 年 2 月 27 日 vs. Date()]
テーブルのセットアップは次のとおりです。
[ID] - Number;
[Milestone] - Number;
[Mdate]-Date;
[Length of time] - calculated field in the query; should be with a user defined function
問題は、2 つの間の時間の長さの計算を自動化できないことです。同じ ID とマイルストーン番号を持つ 2 つのレコードが変更されたときに、前のマイルストーンが次のマイルストーンの終了日を使用することをデータベースが認識できるようにする必要があります。
時間の長さを自動的に計算するユーザー定義関数が必要です。