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