Мне нужна помощь в создании запроса для сортировки столбца Час с 9 утра до 8 утра (на следующий день).
У меня есть объединение 2 запросов с отдельным порядком и параметрами диапазона дат и добавлено ранжирование для сортировки возвращаемых строк.Но кажется, что запрос возвращает строки с 9 по 23, а затем возвращает результаты с 0 по 8. неожиданный результат
Я понятия не имею, как подойти к этому, так как я впервые сталкиваюсь с этим сложным запросом.Я прочитал несколько веток по этому поводу и придумаю этот код.
SELECT StationCode, Month, Day, Year, Hour, Rainfall
FROM
(SELECT 1 AS rank, StationCode, Month, Day, Year, Hour, Rainfall, DateValue(CStr([Month] & '/' & [Day] & '/' & [Year])) AS [Date]
FROM table1
WHERE (((StationCode)=10) AND ((Hour)>=9) AND ((DateValue(CStr([Month] & '/' & [Day] & '/' & [Year]))) Between DateValue([month1] & '/' & [day1] & '/' & [year1]) And DateValue([month2] & '/' & [day2] & '/' & [year2])))
ORDER BY Month, Day, Year, Hour
UNION
SELECT 2 AS rank, StationCode, Month, Day, Year, Hour, Rainfall, DateValue(CStr([Month] & '/' & [Day] & '/' & [Year])) AS [Date]
FROM table1
WHERE (((StationCode)=10) AND ((Hour)<=8) AND ((DateValue(CStr([Month] & '/' & [Day] & '/' & [Year]))) Between DateValue([month1] & '/' & [day1] & '/' & [year1]) And DateValue([month2] & '/' & [day2] & '/' & [year2])))
ORDER BY Month, Day, Year, Hour) dt
ORDER BY rank, Month, Day, Year
Пример данных:
StationCode | Month | Day | Year | Hour | Rainfall
10 | 1 | 1 | 2010 | 0 | 0
10 | 1 | 1 | 2010 | 1 | 0
10 | 1 | 1 | 2010 | 2 | 0
10 | 1 | 1 | 2010 | 3 | 0
10 | 1 | 1 | 2010 | 4 | 0
10 | 1 | 1 | 2010 | 5 | 0
10 | 1 | 1 | 2010 | 6 | 0
10 | 1 | 1 | 2010 | 7 | 0
10 | 1 | 1 | 2010 | 8 | 0
10 | 1 | 1 | 2010 | 9 | 0
10 | 1 | 1 | 2010 | 10 | 0
10 | 1 | 1 | 2010 | 11 | 0
10 | 1 | 1 | 2010 | 12 | 0
10 | 1 | 1 | 2010 | 13 | 0
10 | 1 | 1 | 2010 | 14 | 0
10 | 1 | 1 | 2010 | 15 | 0
10 | 1 | 1 | 2010 | 16 | 0
10 | 1 | 1 | 2010 | 17 | 0
10 | 1 | 1 | 2010 | 18 | 0
10 | 1 | 1 | 2010 | 19 | 0
10 | 1 | 1 | 2010 | 20 | 0
10 | 1 | 1 | 2010 | 21 | 0
10 | 1 | 1 | 2010 | 22 | 0
10 | 1 | 1 | 2010 | 23 | 0
10 | 1 | 2 | 2010 | 0 | 0
10 | 1 | 2 | 2010 | 1 | 0
10 | 1 | 2 | 2010 | 2 | 0
10 | 1 | 2 | 2010 | 3 | 0
10 | 1 | 2 | 2010 | 4 | 0
10 | 1 | 2 | 2010 | 5 | 0
10 | 1 | 2 | 2010 | 6 | 0
10 | 1 | 2 | 2010 | 7 | 0
10 | 1 | 2 | 2010 | 8 | 0
10 | 1 | 2 | 2010 | 9 | 0
10 | 1 | 2 | 2010 | 10 | 0
so on...
Ожидаемые результаты:
StationCode | Month | Day | Year | Hour | Rainfall
10 | 1 | 1 | 2010 | 9 | 0
10 | 1 | 1 | 2010 | 10 | 0
10 | 1 | 1 | 2010 | 11 | 0
10 | 1 | 1 | 2010 | 12 | 0
10 | 1 | 1 | 2010 | 13 | 0
10 | 1 | 1 | 2010 | 14 | 0
10 | 1 | 1 | 2010 | 15 | 0
10 | 1 | 1 | 2010 | 16 | 0
10 | 1 | 1 | 2010 | 17 | 0
10 | 1 | 1 | 2010 | 18 | 0
10 | 1 | 1 | 2010 | 19 | 0
10 | 1 | 1 | 2010 | 20 | 0
10 | 1 | 1 | 2010 | 21 | 0
10 | 1 | 1 | 2010 | 22 | 0
10 | 1 | 1 | 2010 | 23 | 0
10 | 1 | 2 | 2010 | 0 | 0
10 | 1 | 2 | 2010 | 1 | 0
10 | 1 | 2 | 2010 | 2 | 0
10 | 1 | 2 | 2010 | 3 | 0
10 | 1 | 2 | 2010 | 4 | 0
10 | 1 | 2 | 2010 | 5 | 0
10 | 1 | 2 | 2010 | 6 | 0
10 | 1 | 2 | 2010 | 7 | 0
10 | 1 | 2 | 2010 | 8 | 0
Спасибозаранее.