优雅使用SQL LAG()函数返回上个月的最后一个工作日

时间:2016-01-28 19:30:33

标签: sql sql-server sql-server-2012

我必须创建一个查询,我必须找到上个月的最后一个工作日。我知道如何使用具有IsWorkingday标志的日期维度来执行此操作,并从一个月前开始加入日期,并从那里找到max(dateid)。

在我这样做的时候,我想不应该有一个更优雅的解决方案,例如使用LAG()和特定分区并按顺序排序。

我玩了一段时间却找不到解决办法。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这不是LAG()的真正含义。它更适合计算运行总计等事情。如果您想要更好地理解,请在SQL Server中谷歌LAG()函数。

一个可能更优雅的解决方案是获得当月的第一个工作日,并选择它之前的第一个工作日。

在不知道您的表结构和数据的情况下,很难更具体。