私は次の情報を持っています(ビューごとに戻ります):
DateTime ItemID UserTyp Seconds
2012-01-01 10 S 12
2012-01-01 10 S 18
2012-01-01 11 S 22
2012-01-02 11 M 52
2012-01-02 10 S 120
2012-01-02 11 S NULL
2012-01-03 15 M 112
2012-01-03 12 S 182
2012-01-04 10 M NULL
私がする必要があるのは、ユーザーの種類ごとにすべての秒の合計を計算することですが、5 期間分です。
期間は次のように設定されます。
- 最初と最後の日付を取得する
- すべての日を 5 日に分割
- 除算の結果は、1 つの期間に含まれる日数です。
次に、期間ごとに、レコードの DateTime と UserType に応じて、次のレコードを作成する必要があります。
Periods UserTypeS_SUM(Seconds) UserTypeM_SUM(Seconds)
1
2
3
4
5
また、分割を行う前に、少なくとも 5 つのレコードがあるかどうかを確認する必要があります。たとえば、4 つある場合は、1 つのピリオドのみが使用されます。
見た目はそれほど変わらないことはわかっています。関数を使用してソリューションを作成し始めましたが、効果がないように見えます。これを簡単に実行できる組み込み関数はありますか?
編集:本当に申し訳ありませんが、ビューまたはテーブル値関数でこれを行う必要があることを忘れていました。この場合、ストア プロシージャは許可されません。