5

現在の会計年度の開始までさかのぼって設定された約 50,000 レコードの情報を含むテーブルがあります。

現状では、先月からこの表を更新していないため、現在のデータは、2011 年 4 月 1 日まで遡ることができると想定しています。

注 (データを更新すると、現在は 4 月であるため、そこには 2012 年 4 月のデータのみが表示され、5 月には 2012 年 4 月と 2012 年 5 月のデータが表示されます...)

各レコードには、私が懸念している 4 つの列があります。

Department,
Incident date,
month,
year,
reduced

月と年の両方の列は、次の形式のインシデント日付フィールドから生成されています。

2011-06-29 00:00:00.000

部門ごとに、削減されたものを合計する必要がありますが、累積的な方法で行います。

たとえば、2011 年 4 月が現時点で最も古い月/年のデータであると見なされた場合、4 月のすべての部門の削減額の合計を知りたいとします。

次に、5 月の場合は 4 月と 5 月を結合し、6 月の場合は 4 月、5 月、6 月などを指定します...

このテーブルにデータを再インポートするとすぐに、今は 1 か月しかなく、年が更新され、来月までは 4 月の合計のみが表示される (縮小)

4

2 に答える 2

1

Department以下は、、Yearおよびでグループ化された累積合計を返しMonthます。WHERE更新時に前の税年度のデータを消去する場合は、句を省略できます。

SELECT      T1.[Year],
            T1.[Month],
            T1.Department,
            SUM(T2.Reduced) ReducedTotals
FROM        [TABLENAME] T1
INNER JOIN  [TABLENAME] T2 ON ( T1.Department = T2.Department AND T1.IncidentDate >= T2.IncidentDate )
WHERE       T1.IncidentDate >= '2012-04-01'
GROUP BY    T1.[Year],
            T1.[Month],
            T1.Department
ORDER BY    T1.[Year],
            T1.[Month],
            T1.Department
于 2012-04-27T15:04:01.997 に答える
1
select t1.id, t1.singlenum, SUM(t2.singlenum) as sum 

    from @t t1 inner join @t t2 on t1.id >= t2.id
    group by t1.id, t1.singlenum
    order by t1.id 
于 2012-08-08T09:40:28.327 に答える