Tsql 按周降序,基于当前周
是否有办法按周对查询进行排序,但从当前周开始,然后按降序排序?因此,如果当前周为2,则订单将按2、1、52、51等顺序排列Tsql 按周降序,基于当前周,tsql,Tsql,是否有办法按周对查询进行排序,但从当前周开始,然后按降序排序?因此,如果当前周为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(m
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)
谢谢!
在您的示例中,第2周和第1周是否与第52周不同?然后可以按YEAROrderDate DESC、DATEPARTweek、OrderDate DESC进行订购
但您必须将YEAROrderDate添加到GROUP BY子句中。只需先按当前周排序,然后按降序按其他周排序,您可以尝试以下顺序逻辑。您可以在上面添加SELECT和其他逻辑
ORDER BY
CASE WHEN
DATEPART(week,OrderDate) - DATEPART(WEEK, GETDATE()) = 0 THEN 100 ELSE
DATEPART(week,OrderDate)
END DESC
注意不同年份的周数相同
无论如何:因为您是按周分组的,所以您可以简单地按MinorDate DESC排序。此查询甚至不会运行。你到底想达到什么目的?提供示例数据和预期输出。