5

我有一张表,其中包含大约 50,000 条信息记录,这些记录已设置为回顾当前财政年度的开始。

就目前而言,自上个月以来我没有更新此表,因此目前那里的数据假设我们仍在回顾 2011 年 4 月 1 日。

注意(当我刷新数据时,那里只会有 2012 年 4 月的数据,就像我们现在在 4 月一样,然后在 5 月它将有 2012 年 4 月和 2012 年 5 月等等......)

每条记录都有我关心的 4 列:

Department,
Incident date,
month,
year,
reduced

月份和年份列都是从事件日期字段生成的,格式如下:

2011-06-29 00:00:00.000

我需要为每个部门汇总减少的但以累积的方式。

例如,好像 2011 年 4 月将是我目前拥有的最早的月份/年份数据,我想知道 4 月份每个部门的总减少量。

然后五月我想要四月和五月结合,六月我需要四月,五月,六月等等......

有没有一种智能的方法可以做到这一点,这样一旦我将数据重新导入到这个表中,它就会意识到现在只有一个月,而且这一年已经更新,现在到下个月只显示四月的总和(减少)

4

2 回答 2

1

以下将返回按和分组Department的累计总数。如果您在刷新时清除了上一个纳税年度的数据,则可以省略该子句。YearMonthWHERE

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 回答