是否可以按星期#排序此查询,但从当前星期开始,然后按降序排序?因此,如果当前星期#是2,它将按2,1,52,51的顺序排序
SELECT
SalesPerson
, CAST(SUM(hours) AS DECIMAL(18 , 2))
, DATEPART(wk , DATEADD(wk , DATEDIFF(wk , 0 , OrderDate) , 0)) AS Wk#
FROM Orders
WHERE OrderDate >= DATEADD(month , -12 , GETDATE())
GROUP BY DATEADD(wk , DATEDIFF(wk , 0 , OrderDate) , 0)
谢谢! E
答案 0 :(得分:1)
在您的示例中,第2周和第1周的年份与52周不同吗?然后,您可以按YEAR(OrderDate)DESC,DATEPART(week,OrderDate)DESC进行ORDER 但是您必须将YEAR(OrderDate)添加到GROUP BY子句中。
答案 1 :(得分:0)
只需先按当前星期排序,然后再按降序排序其他星期,则可以尝试使用以下排序逻辑。您可以在其顶部添加SELECT和其他逻辑。
ORDER BY
CASE WHEN
DATEPART(week,OrderDate) - DATEPART(WEEK, GETDATE()) = 0 THEN 100 ELSE
DATEPART(week,OrderDate)
END DESC
答案 2 :(得分:0)
请注意来自不同年份的相同数字的周...
无论如何:由于您按周分组,因此您可以简单地ORDER BY MIN(OrderDate) DESC
。