Sql 如何编写存储过程来获取月份和年份的组数据
如何创建按月份和年份分组的总计的存储过程 销售表名Sql 如何编写存储过程来获取月份和年份的组数据,sql,sql-server,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 可以使用一个简单的SQL: SELECT to_char(date,'MON-YYYY'), SUM(VALUE) FROM SALE GROUP BY to_char(date,'MON-YYYY'); 试试这个 SELECT year,
year week date value
2008 4 2008-01-21 50
2008 5 2008-02-22 25
2008 6 2008-02-23 30
可以使用一个简单的SQL:
SELECT to_char(date,'MON-YYYY'), SUM(VALUE) FROM SALE
GROUP BY to_char(date,'MON-YYYY');
试试这个
SELECT year,MONTH(date) AS [Month], SUM(value) AS [value] FROM sale
GROUP BY year,MONTH(date)
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
下面是一个完整的存储过程代码,其中包含参数以及如何运行该过程的示例
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'
试试这个
SELECT year,MONTH(date) AS [Month], SUM(value) AS [value] FROM sale
GROUP BY year,MONTH(date)
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