私はSQL Serverを使用しています。 datepart関数を使用して週ごとに情報をソートしようとすると、値は返されません。私のテーブルには、選択した日付範囲の値があります。SQL Server - datepart週別にソート
私が使用しようとしていますクエリは次のとおりです。
Declare @StartDate datetime, @EndDate datetime
set @StartDate = '20120401 00:00:00'
set @EndDate = '20120430 23:59:59'
;WITH
mytablePlusHours As
(
SELECT *,
DATEPART(ww, [eci_date]) AS [dateWeek]
FROM [mytable]
)
, mytableHourGroups As
(
SELECT dateWeek,
[eci_country],
COUNT(*) As [Number_Country],
ROW_NUMBER() OVER(PARTITION BY dateWeek ORDER BY [eci_country])
As [Country_Rank]
FROM mytablePlusHours
GROUP BY dateWeek, [eci_country]
)
SELECT
dateWeek AS [eci_date],
[eci_country],
[Number_Country]
FROM mytableHourGroups WITH(NOLOCK)
WHERE [dateWeek] between @StartDate and @EndDate
ORDER BY [dateWeek], [Number_Country] DESC
私は一日で情報を引き出すことができますが、私は一週間でそれをソートする方法を見つけ出すことはできません。誰かが私のコードが間違っているところで私に助言してもらえますか?ありがとう!
私は次のように私のデータを表示しようとしています:あなたがこれまでの整数を比較している
Week Country Count
16 United States 13
17 Canada 41
は、だから、それは '[dateWeek] BY' ORDERを尊重されていないと言っていますか?あなたはまた、国別にソートすることを意味しましたか? –
@AaronBertrand彼は、すべての行が除外される原因となっている週の週の値を比較しています。 – JNK
ああ、行がありません。私は正しくソートされていない行があると思った。 –