如何编写存储过程以获取一个月和一年的组数据

时间:2013-07-02 06:23:06

标签: sql sql-server

如何创建存储过程,提供按月和年分组的总计

销售表名

year week  date      value
2008 4    2008-01-21  50
2008 5    2008-02-22  25
2008 6    2008-02-23  30

4 个答案:

答案 0 :(得分:0)

可以使用简单的SQL来完成:

SELECT to_char(date,'MON-YYYY'), SUM(VALUE) FROM SALE
GROUP BY to_char(date,'MON-YYYY');

答案 1 :(得分:0)

试试这个

SELECT year,MONTH(date) AS [Month], SUM(value) AS [value] FROM sale 
GROUP BY year,MONTH(date)

答案 2 :(得分:0)

这是一个包含参数的完整存储过程代码,以及如何运行它的示例。

CREATE PROCEDURE dbo.GetTotalByDate
(
    @StartDate datetime,
    @EndDate datetime
)
AS 
BEGIN
    SELECT S.year as [Year],
    MONTH(S.date) as [Month],
    SUM(S.Value) as [Value]
    FROM Sale S
    WHERE S.date BETWEEN @StartDate and @EndDate
    GROUP BY S.year, MONTH(S.date) 
    ORDER BY [Year], [Month] 
END


EXEC dbo.GetTotalByDate @StartDate = '01/01/2013', @EndDate = '01/01/2014'

答案 3 :(得分:0)

试试这个

CREATE PROCEDURE dbo.GetTotalAmount
AS 
BEGIN
    SELECT DATEPART(YEAR, date)as [Year],
    MONTH(date) as [Month],
    SUM(Value) as [Value]
    FROM Sale 
    GROUP BY DATEPART(YEAR, date), MONTH(date) 
END

EXEC dbo.GetTotalAmount