gpt4 book ai didi

sql - 最近 3 个月的声明

转载 作者:行者123 更新时间:2023-12-01 12:45:07 39 4
gpt4 key购买 nike

我有一条 SQL 语句 (SQL Server Management Studio),我通过仪表板软件将数据传递到 where 语句中。用户可以选择年份(2013 年或现在的 2014 年)和月份(作为数值传递 - 因此 12 月 = 12)。我需要将报表调整为从他们选择的年份/月份开始的最后 3 个月。之前b/c的SQL语句只处理2013年的数据,就是这样:

YEAR(Main.ActivityDate) = '@Request.parmYear~'
AND (Month(Main.ActivityDate) Between ('@Request.parmMonth~'-2) and '@Request.parmMonth~')

通常,parmYear = 2013 然后无论他们选择什么月份,它都会抓取前 2 个月到当前月份。

现在,b/c 现在是 2014 年 1 月,我需要获取 2014 年 1 月 + 2013 年 12 月 + 2013 年 11 月。我想知道如何调整语句以使其动态发生。

想法?

最佳答案

我没有正在运行的 SQL Server 实例来测试此解决方案,但我建议构建一个日期并使用内置函数来计算之前的日期,因为这些日期已经考虑了多年等。

    Declare @requestDate date = DATEFROMPARTS('@Request.parmYear', '@Request.parmMonth', 1);
...

AND Main.ActivityDate between @requestDate AND DATEADD(month, -2, @requestDate )

See this for more详情。

关于sql - 最近 3 个月的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20883993/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com