Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нарастающий итог как изменить?  [new]
Хондавод
Guest
create table #t(id int, sum1 decimal(10,2), tot_sum decimal(10,2))

insert #t(id, sum1) values(1, 1.2)
insert #t(id, sum1) values(2, 1.5)
insert #t(id, sum1) values(3, 1.7)
insert #t(id, sum1) values(4, -0.5)

select a.id, max(a.sum1) as sum1, sum(isnull(b.sum1, 0))+max(a.sum1) as tot_sum
from #t a 
left outer join #t b on b.id < a.id
group by a.id

drop table #t 

Что надо изменить в условии чтобы получилась такая таблица
idsum1tot_sum
11.20
21.51.2
3 1.72.7
4-0.54.40
27 май 11, 12:45    [10718883]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
iljy
Member

Откуда:
Сообщений: 8711
Хондавод,

ээээ... а убрать прибавление текущего значения не?
27 май 11, 12:47    [10718904]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
Хондавод
Guest
iljy
Хондавод,

ээээ... а убрать прибавление текущего значения не?

Ржал 5 минут..))))))))))))))))) в пятницу даже думать не хочется..)))))))) Благодарю.
27 май 11, 12:50    [10718936]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
Хондавод
Guest
iljy, Так оказывается не всё так просто..У меня вместо Id, стоит год и месяц...
create table #t(god int,mes int, sum1 decimal(10,2), tot_sum decimal(10,2))

insert #t(god,mes, sum1) values(2005,1, 1.2)
insert #t(god,mes, sum1) values(2005,2, 1.5)
insert #t(god,mes, sum1) values(2005,3, 1.7)
insert #t(god,mes, sum1) values(2005,4, -0.5)
insert #t(god,mes, sum1) values(2006,1, 3.5)
insert #t(god,mes, sum1) values(2006,2, 2)

select a.god,a.mes, max(a.sum1) as sum1, sum(isnull(b.sum1, 0)) as tot_sum
from #t a left join #t b on b.god <= a.god and b.mes<a.mes
group by a.god,a.mes
Order by god,mes
drop table #t

Когда переходит на следующий год, происходит сбой..Надо чтобы он продолжал нарастающий итог, только без прибавления текущего значения
27 май 11, 13:09    [10719122]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
s.w.a.n.
Member

Откуда: Москва
Сообщений: 137
Хондавод,
on b.god <= a.god and b.mes<a.mes
однако, какое мощное условие
27 май 11, 13:17    [10719192]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Хондавод
on b.god <= a.god and b.mes<a.mes
ON b.god < a.god OR b.god = a.god AND b.mes<a.mes
27 май 11, 13:17    [10719201]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
Хондавод
Guest
s.w.a.n.
Хондавод,
on b.god <= a.god and b.mes<a.mes
однако, какое мощное условие
ну вот же..)) когда год переходит на следующий, месяц то начинается с начала..и условие противоречивое..Прибавляю god+mes..Чё-то не срабатывает
27 май 11, 13:18    [10719207]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
?
Guest
on
b.god*100+b.mes < a.god*100+a.mes 
?
27 май 11, 13:38    [10719381]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог как изменить?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Хондавод
s.w.a.n.
Хондавод,
on b.god <= a.god and b.mes<a.mes
однако, какое мощное условие
ну вот же..)) когда год переходит на следующий, месяц то начинается с начала..и условие противоречивое..Прибавляю god+mes..Чё-то не срабатывает
Вы все ответы читаете?
Точно все?
27 май 11, 14:09    [10719676]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить