gpt4 book ai didi

sql - 计算 SQL Server 中的滚动月份值

转载 作者:行者123 更新时间:2023-12-04 06:48:26 25 4
gpt4 key购买 nike

我在 SQL Server 2005 数据库中有一个表,它具有以下列:

编号,产品名称,年份,一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月

我需要做的是计算产品的平均滚动值。

例如,如果名为“汽车”的产品在表中有 2 行(2009 年和 2010 年),我想计算 2009 年 8 月至 2010 年 8 月或 2009 年 3 月至 2010 年 3 月的平均值。

实现这一目标的最佳方法是什么?

最佳答案

使用Sql Server 2005,你可以看看UNPIVOT .

一旦您将它们放回到它们所属的行中,您就可以开始处理数据了。

就像是

DECLARE @Table TABLE(
Id INT,
ProductName VARCHAR(20),
[Year] INT,
Jan FLOAT,
Feb FLOAT,
Mar FLOAT,
Apr FLOAT,
May FLOAT,
Jun FLOAT,
Jul FLOAT,
Aug FLOAT,
Sep FLOAT,
Oct FLOAT,
Nov FLOAT,
[Dec] FLOAT
)

INSERT INTO @Table SELECT 1,'Car',2009,1,2,3,4,5,6,7,8,9,10,11,12
INSERT INTO @Table SELECT 1,'Car',2010,1,2,3,4,5,6,7,8,9,10,11,12

SELECT Id,
ProductName,
CAST(YearMonth + ' ' + CAST([Year] AS VARCHAR(4)) AS DATETIME) MonthDate,
Vals
FROM (
SELECT Id,ProductName,[Year],Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,[Dec]
FROM @Table
) tbl
UNPIVOT (Vals FOR YearMonth IN (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,[Dec])) as unpvt

关于sql - 计算 SQL Server 中的滚动月份值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3467638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com