我必须创建一个查询,在其中我必须找到上个月的最后一个工作日。我知道如何使用具有IsWorkingday
标志的日期维度执行此操作,并从今天连接到一个月前的日期,然后从那里找到max(dateid)。
当我这样做时,我在想不应该有一个更优雅的解决方案,比如使用具有特定分区依据和排序依据的LAG()
。
我玩了一段时间,但找不到解决方案。有什么想法吗?
这不是 LAG() 的真正用途。 它更适合计算运行总计之类的事情。 如果您想更好地理解,请在 SQL Server 中搜索 LAG() 函数。
一个可能更优雅的解决方案是获取当月的第一个工作日,然后选择它之前的第一个工作日。
如果不了解表结构和数据,就很难更具体。