Firebird 2.1 を使用しています。
次のクエリまたはストアド プロシージャを作成するための助けを借りることができます。
小口現金取引の毎日の合計の月平均をリストする必要があります。
説明させてください:
TABLE PettyCash(RowID, TDate, InOut, Amount)
- 1 2012-01-01 0 5.000
- 2 2012-01-01 1 3.000
- 3 2012-01-05 0 4.000
- 4 2012-01-23 1 2.000
- 5 2012-02-20 1 5.000
着信トランザクションの場合は InOut = 0、発信トランザクションの場合は InOut = 1
クエリで実行する必要があるのは、その月の毎日の残高を計算し、金額を合計してから、当月の日数で割ることです。
特定の日に取引がない場合、残高は同じままです。
したがって、1月は次のようになります。
- 2012-01-01 2.000
- 2012-01-02 2.000
- 2012-01-03 2.000
- ...
- 2012-01-05 6.000
等々。
問題を複雑にするために、昨年から繰り越される開始残高が常に存在します (これが今年の残高に加算されます)。
私はそれを次のように計算します。
SELECT SUM(IIF(INOUT = 0, AMOUNT, -AMOUNT))
FROM PETTYCASH
WHERE TDATE < '2012-01-01';
結果のクエリまたはストアド プロシージャには、開始日と終了日を指定する必要があります。開始日は常に年の最初の日であり、終了日は年の特定の日である可能性があります。つまり、StartDate = 2012-01- 01、終了日 = 2012-06-23
EndDate が月の最終日でない場合、前月の平均は最終日のみで割る必要があります。この例では、6 月は 30 ではなく 23 で割る必要があります。
結果は次のようになります。その月の日次合計の平均
どんな助けでも大歓迎です!
ありがとう