Мне нужно вычислить сумму столбца (B) в другом столбце (C), но добавив следующее значение и изменив его с учетом другого критерия столбца (A), примерно так:
Возможно ли это с помощью простого SELECT?
Вы хотите получить промежуточную сумму столбца B в столбце C для каждого отдельного значения в столбце A, верно? Если да: =SUMIF(A$1:A1,A1, $B$1:$B$8)
и скопируйте вниз.
В SQL Server оконная функция sum() over()
должна помочь.
Обратите внимание на order by ColB
... Это просто заполнитель, я подозреваю, что у вас есть еще один столбец, который будет иметь правильную последовательность
Пример
Select ColA
,ColB
,ColC = sum(ColB) over (partition by ColA order by ColB rows unbounded preceding )
From YourTable
Джон, твое решение почти работает, за исключением определенного случая. Когда COLB повторяется, COLC всегда имеет один и тот же результат, общую сумму. Например, представьте, что COLB имеет значения 20, 40, 40, затем COLC показывает 20, 100, 100, хотя должно быть: 20, 60, 100.
@Mazinger Только что добавил неограниченные предшествующие строки ... Как предложила Charilieface.
@Mazinger Вот рабочий пример dbfiddle.uk/…
Теперь это полностью работает! Последний совет поможет.
Является ли это возможным? Наверное. Если вы предоставите четкое описание логики, которая будет использоваться, а не какие-то неясные фразы «как это» и «принимая во внимание другой столбец», кто-то может помочь.