如果您的报告始终是上个月的,那么我认为最简单的想法是声明上个月的年份和月份,然后在 Where 子句中引用它们。例如:
Declare LastMo_Month Integer = MONTH(DATEADD(MONTH,-1,getdate()));
Declare LastMo_Year Integer = YEAR(DATEADD(MONTH,-1,getdate()));
Select ...
Where MONTH(EnterDate) = @LastMo_Month
and YEAR(EnterDate) = @LastMo_Year
您甚至可以更进一步,允许在任意月前创建报告:
Declare Delay Integer = -1;
Declare LastMo_Month Integer = MONTH(DATEADD(MONTH,@Delay,getdate()));
Declare LastMo_Year Integer = YEAR(DATEADD(MONTH,@Delay,getdate()));
Select ...
Where MONTH(EnterDate) = @LastMo_Month
and YEAR(EnterDate) = @LastMo_Year
希望这可以帮助。
PS - 这是我在 StackOverflow 上的第一个答案,如果格式不正确,请见谅!