SQL Server를 사용하고 있습니다. datepart 함수를 사용하여 주별 정보를 정렬하려고하면 아무 값도 반환하지 않습니다. 내 표에는 선택한 기간에 대한 값이 있습니다.SQL Server - 날짜 단위로 정렬
내가 사용하려고 쿼리는 : 나는 일에 의해 정보를 당길 수 있지만, 나는 주에를 정렬하는 방법을 알아낼 수 없습니다
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'주문을 기리는되지 않은 말? 국가별로 정렬 하시겠습니까? –
@AaronBertrand 그는 모든 주를 날짜로 비교하여 모든 행을 걸러냅니다. – JNK
아, 그럼 행이 없습니다. 올바르게 분류되지 않은 행이 있다고 생각했습니다. –