2015-07-21 1 views
3

Как создать недельные ковши для столбца даты.Создание недельных ковшей в столбце даты в sql

Мои данные выглядят следующим образом:

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 

У меня также есть файл календарь финансового года, содержащее начало недели и конечные диапазоны и которые неделя каждый ковш падает on.It выглядит как

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 

Не знаете, как начать сам процесс или как связать эти файлы. В конце концов вам нужна ваша помощь.

ответ

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 
+0

О, это прекрасно, спасибо человеку –

Смежные вопросы