也许不是最优雅的方式,但是这对我的作品来获取顶级排名:
WITH CTE AS (
SELECT employee_id, DENSE_RANK() OVER (ORDER BY DATEDIFF(DAY, ''20130925'', worked_date)/7 DESC) AS weekRank
FROM Timesheet
)
SELECT TOP (1) weekRank
FROM CTE
WHERE [email protected]_id
ORDER BY weekRank DESC
这是我如何创造weekRank柱和动态传递参数:
WITH rank_cte AS (
SELECT timesheet_id,employee_id, date_worked,
dateadd(week, datediff(day,'20000105',worked_date)/7, '20000105') AS WeekStart,
dateadd(week, datediff(day,'20000105',worked_date)/7, '20000105')+6 AS WeekEnd,
DENSE_RANK() OVER (ORDER BY 1 + DATEDIFF(DAY, '20130925', worked_date)/7 DESC) AS weekRank
FROM Timesheet
)
SELECT timesheet_id, worked_date, WeekStart, WeekEnd, weekRank
FROM rank_cte rc
WHERE [email protected]_id
AND [email protected]
ORDER BY worked_date DESC
谢谢
实际上,您是否将此值存储在表格中,或者在需要确定范围时是否可以计算该值? – billinkc