powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите составить запрос
4 сообщений из 4, страница 1 из 1
Помогите составить запрос
    #36812560
rep_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Помогите составить запрос
ASE12.5

Данные в таблице

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Номер	Сумма	Год
 3 	 100 	 2007 
 3 	 200 	 2008 
 6 	 500 	 2009 
 6 	 300 	 2010 
 5 	 100 	 2007 
 5 	 300 	 2008 
 5 	 400 	 2010 

Мне необходимо вытащить 4 колонку, где будет сумма с нарастающим итогом исходя из года

пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Номер	Сумма	Год	
 3 	 100 	 2007 	 100 
 3 	 200 	 2008 	 300     ( 100 + 200 ....)
 6 	 500 	 2009 	 500    
 6 	 300 	 2010 	 800    
 5 	 100 	 2007 	 100 
 5 	 300 	 2008 	 400 
 5 	 400 	 2010 	 800 


...
Рейтинг: 0 / 0
Помогите составить запрос
    #36812771
MAXHATbIu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
drop table #t
go 
create table #t(nomer int, summa int, god int)

insert #t(nomer, summa, god) values ( 3 ,	 100 ,	 2007 )
insert #t(nomer, summa, god) values ( 3 ,	 200 ,	 2008 )
insert #t(nomer, summa, god) values ( 6 ,	 500 ,	 2009 )
insert #t(nomer, summa, god) values ( 6 ,	 300 ,	 2010 )
insert #t(nomer, summa, god) values ( 5 ,	 100 ,	 2007 )
insert #t(nomer, summa, god) values ( 5 ,	 300 ,	 2008 )
insert #t(nomer, summa, god) values ( 5 ,	 400 ,	 2010 )

alter table #t add id int null

declare @i int 
set @i =  0  
update #t set id = @i, @i=@i+ 1 


select 
	#t.nomer, 
	#t.summa, 
	#t.god, (select sum(t1.summa) from #t as t1 where #t.id >=t1.id and t1.nomer = #t.nomer)
from #t

результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
nomer  summa    god
3	100	2007	100
3	200	2008	300
6	500	2009	500
6	300	2010	800
5	100	2007	100
5	300	2008	400
5	400	2010	800
...
Рейтинг: 0 / 0
Помогите составить запрос
    #36812796
MAXHATbIu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и можно даже проще, без альтер тейблов и тд:

Код: plaintext
1.
2.
3.
4.
select 
	#t.nomer, 
	#t.summa, 
	#t.god, (select sum(t1.summa) from #t as t1 where #t.god >=t1.god and t1.nomer = #t.nomer)
from #t
...
Рейтинг: 0 / 0
Помогите составить запрос
    #36812904
rep_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо!
все получилось
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите составить запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]