2016-10-08 1 views
0

My SQL запросов, связанных с суммой двух подряд:Расчет суммы двух строк в запросе T-SQL, связанные с суммой двух строк

t | sum of t 
1 |  1  | (1 + 0) = 1 the output of sum of t come like this  
1 |  2  | (1 + 1) = 2  
1 |  3  | (2 + 1) = 3 
0 |  3  | (3 + 0) = 3 
1 |  4  | (3 + 1) = 4 
+0

любой один знает, как этот выход будет поступать на MS Access – vinu

ответ

2

Вы, кажется, хотите накопленную сумму. Для этого требуется наличие столбца, который задает порядок строк в таблице. Помните, что таблица представляет неупорядоченный набор, поэтому вам нужно указать столбец для указания порядка.

Если у вас есть такой столбец в SQL Server 2012+, вы можете использовать:

select col1, sum(col1) over (order by id) 
from t; 

где id находится столбец заказа.

В более ранних версиях у вас есть несколько вариантов, ни один из них не эффективен. Вот один метод с использованием связанного подзапроса:

select col1, 
     (select sum(t2.col1) 
     from t as t2 
     where t2.id <= t.id 
     ) as cume_sum 
from t; 
+0

привет дружище этот код не работает в доступе мс – vinu

+1

@vinu, а вы помечено как 'SQL Server' , поэтому запрос SQL Server - это то, что вы получаете – Squirrel

+0

привет, если знаете, как это возможно в запросе доступа к ms, пожалуйста, помогите – vinu

Смежные вопросы