2015-06-29 4 views
1

У меня есть таблица с 2 столбцами - Date, ItemsSold. У меня есть следующий запросПолучить начальную дату недели, используя datepart

Select datepart(week, [Date]) as WeekNo, SUM([ItemsSold]) as Total From [table] 
group by datepart(week, [Date]) 

Это дает следующий вывод

WeekNo Total 
3   20 
4   30 

То, что я на самом деле нужно, это выход следующим

WeekOf   Total 
11 Jan 2015  20 
18 Jan 2015  30 

Как получить дату начала недели что datepart возвращается?

ответ

0

Для SQL-сервера, что-то вроде этого:

declare @StartDate as datetime = '1/1/' + cast(datepart(year,getdate()) as char(4)) 
 
declare @StartofYear as datetime = dateadd(day,(datepart(dw,@startdate)*-1)+1,@StartDate) 
 

 
Select datepart(week, [Date]) as WeekNo, SUM([ItemsSold]) as Total, dateadd(day,(@WeekNo-1)*7,@StartofYear) as WeekOf 
 
From [table] 
 
group by datepart(week, [Date])