Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сумма с накоплением
|
|||
|---|---|---|---|
|
#18+
Может кто писал алгоритм на T-SQL такой штуки: нужно реализовать сумму с накоплением в таблице, т.е. расчитать сумму в поле P1 таким образом, чтобы значение поля P1 было равно сумме предыдущих значний по полю P. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 11:40 |
|
||
|
Сумма с накоплением
|
|||
|---|---|---|---|
|
#18+
Тупой медленный запрос , но других нет select t1.id,t1.p,sum(t2.p) as sum_p from SomeTable t1, SomeTable t2 where t2.id <= t1.id Он же, только записан более понятно select t1.id,t1.p, ( select sum(t2.p) from SomeTable t2 where t2.id<=t1.id ) as sum_p from SomeTable t1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 13:03 |
|
||
|
Сумма с накоплением
|
|||
|---|---|---|---|
|
#18+
declare @t table( date int, s int) insert @t select 1,1 insert @t select 1,2 insert @t select 2,4 insert @t select 2,5 insert @t select 3,1 declare @d table (date int) insert @d select distinct date from @t select d.date, sum(s) from @d d, @t t where t.date<=d.date group by d.date В отличии от примера zamm здесь позволяются повторения дат, хотя суть одна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 13:11 |
|
||
|
Сумма с накоплением
|
|||
|---|---|---|---|
|
#18+
Приблизительно так create table #table1 (id int identity, inv_period char(7), summa decimal(10,2)) insert into #table1 values('2001/01', 10) insert into #table1 values('2001/02', 15) insert into #table1 values('2001/03', 7) insert into #table1 values('2001/04', 20) insert into #table1 values('2001/05', 10) select a.inv_period, max(a.summa) as summa1, sum(coalesce(b.summa, 0)) as summa2 from #table1 a left outer join #table1 b on b.inv_period < a.inv_period group by a.inv_period drop table #table1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 13:13 |
|
||
|
Сумма с накоплением
|
|||
|---|---|---|---|
|
#18+
Всем огромное спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 13:24 |
|
||
|
Сумма с накоплением
|
|||
|---|---|---|---|
|
#18+
по скорости выполнения: 1. приведенный выше способ самый медленный 2. с использованием курсоров 3. с использованием Update смотрите синтаксис Update - возможно сохранение промежуточных результатов в переменной (не знаю как в 7 но в 2000 такое есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2001, 15:05 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32007006&tid=1826578]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 320ms |

| 0 / 0 |
