2015-12-30 3 views
-2

У меня есть таблица, и я хочу отображать данные по неделям в столбцах. Я проработал неделю, но не могу делать все недели через месяц.Группа за неделю с использованием SQL Server 2008

В моей таблице я хочу, чтобы сгруппировать данные по идентификатору в неделю и просуммировать

Мои данные образец здесь: SqlFiddle

Образец о/р

121212 1212 7646 45647 
+3

Возможно, мне что-то не хватает, но как вы ожидаете выхода из таблицы, которую вы предоставили? –

+0

Выход 4 недели в 4 разных столбцах @RahulTripathi –

+0

Будет ли всегда быть один и тот же 4 недели или будет динамический период, то есть последние 4 полных недели? –

ответ

0

Проверить это

SELECT month 
    ,SUM(CASE WHEN day between 1 and 7 then Value END) as WEEK_1_VAL 
    ,SUM(CASE WHEN day between 8 and 14 then Value END) as WEEK_2_VAL 
    ,SUM(CASE WHEN day between 15 and 21 then Value END) as WEEK_3_VAL 
    ,SUM(CASE WHEN day between 22 and 28 then Value END) as WEEK_4_VAL 
    ,SUM(CASE WHEN day between 29 and 31 then Value END) as WEEK_5_VAL 
FROM sample GROUP BY month 
; 

Выход

month WEEK_1_VAL WEEK_2_VAL WEEK_3_VAL WEEK_4_VAL WEEK_5_VAL 
12  8   13   1   119.78  11.89 
+0

8 дней в неделю? –

+0

Нет, 7 дней в неделю –

+0

Изменено 7 дней в неделю. @DheerajPatnaik Есть ли этот ответ. – minatverma

0

ли запрос, где группа по DATEPART(week, ...), которая будет производить одну строку в неделю, а затем PIVOT этот запрос, чтобы сделать строки в столбцы.

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