Sql server 2012 如何选择一个月的最后一周?

Sql server 2012 如何选择一个月的最后一周?,sql-server-2012,Sql Server 2012,我有一张表,上面有每天的员工时间/客户信息。我需要每周和每月收集这些信息并进行总结。这是我能做到的 我陷入困境的地方是,对于每个月的最后一周,如果是周六之前结束的部分周,我需要获取这些信息,提取这些信息并插入到表中或创建一个视图 这些是表中的字段。 员工ID、付款类型、仓库、用户名、工作时间、工作日期、工作周、工作日查看以下讨论: , 他们展示了如何到达山顶的最后一个星期天。 您可以有这样一种情况,您可以声明: 其中DAYcurrentDay>DAYlastSunday 和MONTHcurren

我有一张表,上面有每天的员工时间/客户信息。我需要每周和每月收集这些信息并进行总结。这是我能做到的

我陷入困境的地方是,对于每个月的最后一周,如果是周六之前结束的部分周,我需要获取这些信息,提取这些信息并插入到表中或创建一个视图

这些是表中的字段。
员工ID、付款类型、仓库、用户名、工作时间、工作日期、工作周、工作日查看以下讨论:

,

他们展示了如何到达山顶的最后一个星期天。 您可以有这样一种情况,您可以声明:

其中DAYcurrentDay>DAYlastSunday 和MONTHcurrentDay=MONTHlastSunday

检查以下内容:

谢谢你的帮助

最后我创建了一个日历,添加了一个应计列,并在月末用2标记了部分周。然后,我可以通过连接两个表来选择零件周

;WITH Sell as (
SELECT CAST('20150826' as Date) dt, 1 Amount UNION ALL
SELECT '20150827' dt, 5 Amount UNION ALL
SELECT '20150828' dt, 4 Amount UNION ALL
SELECT '20150829' dt, 8 Amount UNION ALL
SELECT '20150901' dt, 9 Amount UNION ALL
SELECT '20150902' dt, 11 Amount UNION ALL
SELECT '20150903' dt, 3 Amount UNION ALL
SELECT '20150904' dt, 6 Amount UNION ALL
SELECT '20150905' dt, 7 Amount 
)

SELECT 
     DATEPART(MONTH, dt) as mnth
    , DATEPART(WEEK, dt) as wk
    ,SUM(Amount) as Sum
FROM Sell
GROUP BY DATEPART(MONTH, dt)
    , DATEPART(WEEK, dt) 
ORDER BY 1,2