【发布时间】:2014-08-13 20:47:01
【问题描述】:
我正在尝试创建一个存储过程,该过程可以从以下查询中获取最近 4 个月的结果,但我不确定如何执行此操作。
这是我到目前为止所做的:
Declare @Number varchar(30) = '12'
Select
month = month(EndDate),
YEAR = YEAR(EndDate),
SUM(DownloadUnits) as downloads,
SUM(UploadUnits) as uploads,
number
from testTable
where number=@Number
GROUP BY MONTH(EndDate), Year(Enddate),number
如何过滤掉它,这样当我传递月份参数(我还没有创建它)时,它会过滤掉结果,只显示过去四个月? (我已经硬编码了 number 参数进行测试)
【问题讨论】:
-
月份参数中有什么?在这种情况下是 4 还是要从中减去 4 的月份数?
-
要减去 4 的月份数。假装它的一月(1)我需要撤回 12,11,10 所以我需要使用年和月
-
@user3884462:那么你将作为参数传递什么。日期值?因为仅仅过了一个月是不够的!
-
我建议将@Number varchar(30) 更改为@YearMonth char(7) 并传入像'2014-01' 这样的值。它会给你更多的灵活性。更好的是,传入年份和月份的数值。
标签: sql sql-server