我有一个日期维度表,它为每个日期记录了大量字段,其中一个字段是一年中的两周。
我正在尝试编写一个t-sql查询,根据当前日期(或传递给它的任何日期)返回前两周的最后一个日期和前两周的数字。
我可以得到目前的两周和最后一个日期好吧,我需要弄清楚的是如何得到前两周结束日期,包括过渡到新的一年。
我下面的代码用于返回一年中的当前两周和该两周的最后一个日期,我将如何修改此代码以返回任何日期的前两周和该两周的结束日期,特别是如果该日期是任何一年中的1月2日?
With
Query1 As
(Select
Cast(GetDate() As Date) As Todays_Date)
Select
Query1.Todays_Date,
staging.dbo.manualdata_DateDimension.FortnightofYear,
Max(staging.dbo.manualdata_DateDimension.Date) As Max_Date
From
Query1 Inner Join
staging.dbo.manualdata_DateDimension On staging.dbo.manualdata_DateDimension.Date = Query1.Todays_Date
Group By
Query1.Todays_Date,
staging.dbo.manualdata_DateDimension.FortnightofYear
3条答案
按热度按时间jdg4fx2g1#
尝试以下操作:
9cbw7uwe2#
试试这个。它假设
FortnightofYear
每年从1开始lnlaulya3#
多亏了gotqn和k4m,因为这让我重新思考我是怎么做的,但这两个帖子都没用。
下面是返回所需数据的代码(我希望我正确地标记了它),在执行时将@rundate作为任意日期传递。