2016-05-03 56 views
0

指定された時刻に特定の場所の合計アクティビティを計算するアクセスクエリがあります。日付の範囲でこれを実行し、SQLを使用して結果を返す方法はありますか?または、コードから日付とともにさまざまなクエリを実行するためのフォームを書く必要がありますか?日付範囲のクエリの照会

もう少し複雑になるため、クエリは放射能腐敗を扱っており、要求された時点で各項目を現在の活動に修正していますが、これはおそらくテストでは無視することができます。

最後に、わずかに関係のないメモでは、いつでも場所に到着して離れることができますが、毎日のデータポイントを持つことはできません。したがって、3時間間隔を妥協として使用しています。放射能崩壊は方程式に従うが、誰もがこれを行う良い方法がある(データがアイテムが到着すると即座にプロットされる、そうでなければ到着時間とプロットされた間隔からの崩壊は私の結果に多くの影響を及ぼす可能性がある)管理する可能性がありますか?単一の日付のための

現在のSQL:

SELECT FORMAT(SUM(Items.Activity*(Exp(-(0.693*(dDate-Items.MeasuredOn)/Nuclides.HalfLife)))), '#,##0.00') AS CurrentActivity 
FROM Nuclides INNER JOIN ((Locations INNER JOIN (Items INNER JOIN ItemLocations ON Items.ItemID = ItemLocations.ItemID) ON Locations.LocationID = ItemLocations.LocationID) INNER JOIN LocationLimits ON Locations.LocationID = LocationLimits.LocationID) ON (Nuclides.Nuclide = Items.Nuclide) AND (Nuclides.Nuclide = LocationLimits.Nuclide) 
WHERE (((ItemLocations.LocationID)=lLocationID) AND ((ItemLocations.RecieptDate)<dDate) AND ((ItemLocations.DisposalDate)>dDate Or (ItemLocations.DisposalDate) Is Null)); 

答えて

0

でした代わりに、次のように解決し、私が最初に想像した方法で解決する方法を全く数字ませんアウト:

ユーザーは、期間の日付範囲を入力彼らはデータを閲覧する必要があります。イベント時間に達するまで

つのクエリは、イベントが起こった全ての日付の単一のリストを返すために一度に計算セットの時間間隔(現在1時間)の活動を使用して

(日付項目は、日付の項目が削除追加しました) 。イベント時には、イベントが発生する前にアクティビティが0.5秒間計算され、イベント自体の時間が計算されます。次に、次のイベントまでの時間間隔を続けます。

最終イベント終了後、終了時刻に達するまで間隔で計算を続けます。

これはユーザーにとって問題にならない程度にすばやく動作し、グラフは必要なだけ滑らかです。 FYIアクティビティは、イベントの前に半分の時間を計算して、ライン上に垂直スロープを与えます。そうでない場合は、前のポイントから斜めになります(潜在的に1時間以上)。