Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为特定期间的特定名称汇总值?_Sql_Sql Server_Sum - Fatal编程技术网

Sql 为特定期间的特定名称汇总值?

Sql 为特定期间的特定名称汇总值?,sql,sql-server,sum,Sql,Sql Server,Sum,我的目标是在列中总结特定名称和特定时间段的值。我有一列名称[name],一列整数值,我想把[values]和另一列整数值[Day]相加。我想对每天按名称分组的值进行汇总 例如,如果有一个名字Chris在第1天的值为4,另一个条目Chris在第3天的值为2,我想显示Chris在第14天和第2天的总和 我已经得到了一些工作代码,如下所示:此代码仅对从第1天到第X天的每个值进行求和。我无法找到一个能够对特定时间段的值进行求和的代码。假设在第27天有一个条目Ralph 我的原始代码对Ralph的每个值进

我的目标是在列中总结特定名称和特定时间段的值。我有一列名称[name],一列整数值,我想把[values]和另一列整数值[Day]相加。我想对每天按名称分组的值进行汇总

例如,如果有一个名字Chris在第1天的值为4,另一个条目Chris在第3天的值为2,我想显示Chris在第14天和第2天的总和

我已经得到了一些工作代码,如下所示:此代码仅对从第1天到第X天的每个值进行求和。我无法找到一个能够对特定时间段的值进行求和的代码。假设在第27天有一个条目Ralph

我的原始代码对Ralph的每个值进行求和,直到第27天,但现在我想对特定时间范围的值进行求和,例如,我想对过去20天中列中每个名称的每个值进行求和。这怎么可能

select name, day, value, name2, value2,
sum(value) over (partition by name order by day) SumValue,
sum(value2) over (partition by name2 order by day) SumValue2
from (select *, row_number() over (order by day) rn from tablename) as t
order by rn
注意:行的顺序需要保持不变。

尝试下面的脚本-

WITH CTE AS
(
    SELECT Name,Day,SUM(Value) S_Val
    FROM your_table
    GROUP BY Name,Day
)

SELECT A.Name,A.Day,
(
    SELECT SUM(B.S_Val) 
    FROM CTE B 
    WHERE B.Name = A.Name 
    AND B.Day <= A.Day
) AS Running_Sum
FROM CTE A
ORDER BY A.Name,A.Day
试试下面的脚本-

WITH CTE AS
(
    SELECT Name,Day,SUM(Value) S_Val
    FROM your_table
    GROUP BY Name,Day
)

SELECT A.Name,A.Day,
(
    SELECT SUM(B.S_Val) 
    FROM CTE B 
    WHERE B.Name = A.Name 
    AND B.Day <= A.Day
) AS Running_Sum
FROM CTE A
ORDER BY A.Name,A.Day

简单的where day=27或where day介于12和15之间的订单不是由do it完成吗?示例数据和期望的结果将非常有用。您完全正确的@OlivierJacot Descombes!就这么简单!非常感谢。简单的where day=27或where day介于12和15之间的订单不是由do it完成吗?示例数据和期望的结果将非常有用。您完全正确的@OlivierJacot Descombes!就这么简单!非常感谢。