Sql server 2012 在sql中的日期列中创建每周存储桶

Sql server 2012 在sql中的日期列中创建每周存储桶,sql-server-2012,buckets,Sql Server 2012,Buckets,如何为日期列创建每周存储桶 我的数据如下所示: 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 我还有一个财政年度日历文件,其中包含一周的开始和结束范围,以及每个桶落在哪

如何为日期列创建每周存储桶

我的数据如下所示:

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...
这里的任务是,我必须将表中的所有行项目分组到每个桶下,并找到每周的金额值

Output:
ID    LOC    WEEk   Amount
1     AAA    1        4000
2     AAA    2        1000

不确定如何启动进程本身或如何链接这两个文件。请您提供帮助。

此处需要相关子查询。假设数据在表数据中,日历在表日历中。那么您的查询将如下所示

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