如何为日期列创建每周存储桶。
我的数据如下:
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
不确定如何启动流程本身或如何链接这两个文件。需要你的帮助。
答案 0 :(得分:2)
您需要此处相关子查询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