私はAccessデータベースを書き直し中です。書き直す必要があるMS Accessクエリがあります。これらは基本的に次の2つのデータベースで使用され、データのカウント/合計で構成されます。次に、レポートのために合計を使用します。ほとんどのサブクエリは、このようなものです。複数行テーブル関数またはストアドプロシージャを使用する
これは書き換えが簡単で問題は発生しません。私の問題は、私は約20-30のこれらのクエリを書き直す必要があるということです。ユーザーが現在持っている要求の1つは、アカウントの数量と合計を構成するアカウントの一覧を取得するオプションを持つことです。だから、リストが欲しいので、私の20-30の質問は二重になりました。
だから私は、これは、彼らが
をしたい任意の特定の日のカウントまたはリストを提供することができるように設計するための最良の方法を決定しようとしています、私はこれを行うには、マルチステートメントの表関数を作成することを考えていましたが、私はそれが格納されたprocやビューや他のものよりも良いかどうかわからない
私は彼らが任意の日付で検索することができ、アカウントのリストまたはカウントを取得することができます次の関数を作成しました。
CREATE FUNCTION [udf_GeBreakdown]
(
@BusinessDate datetime
, @ListOfAccounts bit
)
RETURNS @TableCount
TABLE
(
Account int, ReasonName varchar(50), Amount money
)
AS
BEGIN
DECLARE @PreviousDate smalldatetime
SET @PreviousDate = udf_GetNextImportDate(@BusinessDate, -1);
IF @ListOfAccounts = 0
BEGIN
INSERT INTO @TableCount
SELECT Count(Account), R.ReasonName, Sum(Amount)
FROM Debs.Resolved RS
INNER JOIN Debs.Reason R
ON RS.ReasonId = R.ReasonId
WHERE RS.DebitDate = @PreviousDate
AND RS.StatusId NOT IN (15, 17)
GROUP BY R.ReasonName
END
ELSE
BEGIN
INSERT INTO @TableCount
SELECT Account, R.ReasonName, Amount
FROM Debs.Resolved RS
INNER JOIN Debs.Reason R
ON RS.ReasonId = R.ReasonId
WHERE RS.DebitDate = @PreviousDate
AND RS.StatusId NOT IN (15, 17)
END
RETURN
END
これは、この方法または私はちょうど私がこれを照会するとき、私のカウント/合計を取得し、その後のアカウントのリストを提供し、必要がある場合はそれをやって時間の無駄であるかどうかはわかりません。私はいくつかの助けと方向を探しています。