powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нарастающая сумма
11 сообщений из 11, страница 1 из 1
Нарастающая сумма
    #35347546
zpsz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите составить sql запрос.
Существует таблица
2
3
1
7
4
Нужно получить таблицу вида
2 2
3 5
1 6
7 13
4 17
За ранее благодарю.
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35347548
QQs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так сложноватисто будет. А уникального ID нет ?
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35347552
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непонятен принцип формирования искомой таблицы
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35347569
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Принцип понял. А нужен именно sql запрос или достаточно будет просканировать таблицу?
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35347583
zpsz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужен именно sql запрос
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35347760
Фотография MaestroEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C пользовательской функцией пойдет?


public gp
gp=-aaa
select aaa,sss1() as bbb from table1 into curs bbb
browse


function sss1
gp=gp+aaa
return gp
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35347774
vklepko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение на T-SQL поможет?
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35348262
DmGr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может так пойдет

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE CURSOR cur1 (dd d, nn int )

INSERT INTO cur1 (dd, nn) VALUES (DATE(),  1 )
INSERT INTO cur1 (dd, nn) VALUES (DATE()+  1 ,  2 )
INSERT INTO cur1 (dd, nn) VALUES (DATE()+  2 ,  3 )
INSERT INTO cur1 (dd, nn) VALUES (DATE()+  3 ,  4 )

SELECT a.dd, a.nn, sum(b.nn) ;
FROM cur1 a ;
FULL JOIN cur1 b ON a.dd >= b.dd ;
GROUP BY a.dd
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35348333
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как пример, скажем сумма выручки "dohod " и дата выручки "date" у некоторой торговой точки
нарастающий итог по доходам за квартал будет рассчитан примерно так:
Код: plaintext
1.
2.
3.
4.
select date, dohod as sumDohod, (select summ(dohod ) from tableMy OutT where outT.date<=inT.date) as sumNar
from tableMy inT
where date between '2008-01-01' and '2008-03-31'
order by date
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35348348
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс, не включил еще одно условие, так точно за квартал посчитает :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select date, dohod as sumDohod, 
(
select summ(dohod ) 
from tableMy OutT where outT.date between '2008-01-01'  and inT.date
) as sumNar
from tableMy inT
where date between '2008-01-01' and '2008-03-31'
order by date
...
Рейтинг: 0 / 0
Нарастающая сумма
    #35358058
LR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LR1
Гость
zpszНужен именно sql запрос
Так сойдет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CLOSE DATABASES all
CREATE CURSOR source (f1 i)
INSERT INTO source VALUES ( 2 )
INSERT INTO source VALUES ( 3 )
INSERT INTO source VALUES ( 1 )
INSERT INTO source VALUES ( 7 )
INSERT INTO source VALUES ( 4 )


SELECT f1, IIF(TYPE("m.a")="U",IIF(ISNULL(_vfp.DoCmd("local m.a") ;
	AND _vfp.DoCmd("m.a=0")), 00 , 00 ), ;
	IIF(ISNULL(_vfp.DoCmd("m.a=IIF(RECNO()=1,f1,m.a+f1)")),m.a,m.a)) as sum ;
	FROM source
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нарастающая сумма
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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