У меня есть несколько заказов в таблице, и последняя дата заказа 2011 года - 20 декабря.
Я использую команду sql для вычисления количества заказов за данную неделю:
SELECT CONVERT(VARCHAR(3),DATENAME(week,convert(datetime,order_date,103))) AS week,
COUNT(1) as orders
FROM order_table
where DATENAME(YEAR,convert(datetime,order_date,103)) = '2011'
GROUP BY CONVERT(VARCHAR(3),DATENAME(week,convert(datetime,order_date,103)))
order by week asc
Он возвращает мне некоторые из следующих результатов:
Week | Orders
41 | 42
42 | 110
43 | 115
...
...
51 | 155
52 | 15
Проблема в том, что последняя указанная мной дата заказа 2011 года - 20 декабря 2011 года, которая не может быть 52-й неделей, поэтому должна быть 51-й неделей.
У меня есть некоторые другие статистические данные (от другой системы, а не от сервера SQL), которые дают мне некоторые другие цифры, и на прошлой неделе это 51, что, я не сомневаюсь, является правильным. Так что будут запросы, если люди ищут оба!
Кто-нибудь знает или знает, как это отсортировать?
Спасибо