Sql 如何在特定日期前几个月计算?

Sql 如何在特定日期前几个月计算?,sql,Sql,我有一个表格,我可以选择一个月并获取数据。 如何让查询得到3月份之前的月份 例如,如果用户输入“3”(三月),如何获取查询以获取“一月/二月/三月”的数据。 我使用sql 2012 SELECT sum(denied) as denied FROM test where year(date)=2016 and month(date)=3 and denied > 0 如果只是2016年,那么从下拉列表中获取月数,您不需要像我一样使用变量,我只是将其设置为便于查看 Set @Mont

我有一个表格,我可以选择一个月并获取数据。 如何让查询得到3月份之前的月份

例如,如果用户输入“3”(三月),如何获取查询以获取“一月/二月/三月”的数据。 我使用sql 2012

SELECT sum(denied) as denied
FROM test
where  year(date)=2016 and month(date)=3 and   denied > 0

如果只是2016年,那么从下拉列表中获取月数,您不需要像我一样使用变量,我只是将其设置为便于查看

Set @MonthNum = <number> /** e.g. 3 for March **/

SELECT sum(denied) as denied
FROM test
where  year(date)=2016 and month(date) <= @MonthNum and   denied > 0
Set@MonthNum=/**例如3月份**/
选择sum(denied)作为denied
从测试
其中年(日期)=2016年,月(日期)0

因为您知道如何获取给定月号的月名,所以从1开始,倒计时到给定月号,然后获取相应的月名。