kac*_*apy 5 sql-server-2008 sql-server
我正在尝试报告电子邮件消息系统中的数据,并希望通过month/year.
SELECT YEAR(crdate) AS y,
MONTH(crdate) AS m,
COUNT(*) AS tally
FROM MESSAGE
WHERE YEAR(crdate) = 2012
AND SUBJECT <> 'Welcome' --exclude default messages
GROUP BY
YEAR(crdate),
MONTH(crdate)
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,但它的限制在于我需要手动更改年份。这可以升级为以这种month/year格式输出表格中的所有日期吗?
删除年份会将可能数年的所有月份聚集在一起并扭曲数据。我希望从那个特定的month/year.
将其包装在存储过程中,然后:
CREATE PROCEDURE GetYearCounts
@year INT
AS
SELECT YEAR(crdate) AS y,
MONTH(crdate) AS m,
COUNT(*) AS tally
FROM MESSAGE
WHERE YEAR(crdate) = @year
AND SUBJECT <> 'Welcome' --exclude default messages
GROUP BY
YEAR(crdate),
MONTH(crdate);
GO
Run Code Online (Sandbox Code Playgroud)
这将允许您指定要从调用中获取数据的年份。IE
EXEC GetYearCounts @year = 2012;
GO
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,但它的限制在于我需要手动更改年份。
根据您的要求,无法自动执行此操作。