1
Я хочу вернуть год, а затем конец недели, а затем группу по году, а затем конец недели. Проблема с этим кодом заключается в том, что он делает все, кроме сортировки.Ошибка форматирования и сортировки даты SQL
SELECT datepart(YEAR, CONVERT(DATE, PH.CreatedOn)) Year,
Convert(varchar(2), Datepart(month, DATEADD(D, -1 * DATEPART(dw, PH.createdon) + 7, PH.createdon)), 101) + '/' + Convert(varchar(2), Datepart(Day, DATEADD(D, -1 * DATEPART(dw, PH.createdon) + 7, PH.createdon)), 101) [Week Processed],
COUNT(PH.new_purchasehistoryid) AS 'Registrations'
FROM new_purchasehistory PH
GROUP BY DATEPART(YEAR, CONVERT(DATE, PH.createdon)), Convert(varchar(2), Datepart(month, DATEADD(D, -1 * DATEPART(dw, PH.createdon) + 7, PH.createdon)), 101) + '/' + Convert(varchar(2), Datepart(Day, DATEADD(D, -1 * DATEPART(dw, PH.createdon) + 7, PH.createdon)), 101)
ORDER BY DATEPART(YEAR, CONVERT(DATE, PH.createdon)) DESC, Convert(varchar(2), Datepart(month, DATEADD(D, -1 * DATEPART(dw, PH.createdon) + 7, PH.createdon)), 101) + '/' + Convert(varchar(2), Datepart(Day, DATEADD(D, -1 * DATEPART(dw, PH.createdon) + 7, PH.createdon)), 101) desc
Вот результат. Думаю, мне нужна еще одна цифра. Есть ли более простой способ?
Year Week Processed Registrations
2016 2/6 5935
2016 2/27 4288
2016 2/20 4205
2016 2/13 3177
2016 1/9 10422
2016 1/30 3834
2016 1/23 3411
2016 1/16 2718
2015 9/5 8560
2015 9/19 6245
2015 9/12 7427
2015 8/8 6489
2015 8/29 6558