我正在使用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
所以你說這是不是尊重'ORDER BY [dateWeek]'?你是否也想按國家排序? – 2012-04-24 20:50:56
@AaronBertrand他正在比較int周到日期值,這會導致所有行被過濾掉。 – JNK 2012-04-24 20:51:21
啊,所以沒有行。我認爲有沒有排序正確的行。 – 2012-04-24 20:51:59