如何为日期列创建每周存储桶
我的数据如下:
ID LOC DATE Amount
1 AAA 21-07-2015 3000
2 AAA 22-07-2015 1000
3 AAA 23-07-2015 0
4 AAA 27-07-2015 300
5 AAA 29-07-2015 700
我还有一个财务年度日历文件,其中包含周开始和周结束范围以及每个桶落在哪个星期。它看起来像
Year WeekStart WeekEnd Week
2015 20-07-2015 26-07-2015 1
2015 27-07-2015 02-08-2015 2
so on till 2020...
这里的任务是我必须将A表中每个桶下的所有行项分组,并找到每周的金额。
Output:
ID LOC WEEk Amount
1 AAA 1 4000
2 AAA 2 1000
不知道如何启动进程本身或如何链接这两个文件。我需要你的帮助。
这里需要关联子查询https://technet.microsoft.com/en-us/library/ms187638(v=sql.105).aspx。假设数据在表数据中,日历在表日历中。那么你的查询将看起来像
select
loc, week, sum(amount)
from
(select
(select top 1 week from calendar t1 where t1.WeekStart <= t2.date and t2.date <= t1.WeekEnd) as week,
loc,
amount
from
data t2) as subsel1
group by
loc, week