3

日付列の週次バケットを作成するにはどうすればよいですか。

私のデータは次のようになります:

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...

ここでのタスクは、テーブル内のすべての項目をグループ化して、各バケットに分類し、1 週間あたりの金額を見つけることです。

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

プロセス自体を開始する方法や、これらの両方のファイルをリンクする方法がわかりません.親切にあなたの助けが必要です.

4

1 に答える 1

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
于 2015-07-21T14:16:28.100 に答える