powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос на сложение
6 сообщений из 6, страница 1 из 1
запрос на сложение
    #37023455
Xellosslol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сразу суть Как из одной таблицы все данные столбца(koli4estvo) прибавить к другой таблице по id в столбец(koli4estvo1) отнимать данные не надо
надеюсь правильно объяснил ситуацию
...
Рейтинг: 0 / 0
запрос на сложение
    #37023507
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
запрос на сложение
    #37023632
Xellosslol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я знаю эти команды и например сделал для одной выбранной записи через scan for при помощи textbox

но вот как сделать по всем не понимаю нужен именно пример
...
Рейтинг: 0 / 0
запрос на сложение
    #37023641
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Xellosslol,

Фокса под рукой нет, могу синтаксически ошибаться.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select t1
scan
    lnSum =  0 
    select t2
    locate for t1.id = t2.id
    do while found()
        lnSum  = lnSum + t2.sumfield    
        continue
    enddo
    replace t1.sumfield with t1.sumfield + lnSum in t1 
endscan
...
Рейтинг: 0 / 0
запрос на сложение
    #37023678
Xellosslol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
о спасибо большое
...
Рейтинг: 0 / 0
запрос на сложение
    #37023722
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для суммирования значений используется команда CALCULATE или SUM

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select t1
scan
    lnSum =  0 
    select t2
    CALCULATE SUM(t2.sumfield) FOR t2.id = t1.id TO lnSum
    select t1
    replace t1.sumfield with t1.sumfield + lnSum 
endscan

Если же речь идет о VFP9, то можно использовать подзапрос в команде UPDATE-SQL

Код: 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.
25.
26.
27.
28.
29.
* Главная таблица    
CREATE CURSOR tabMain (tabMainID I, Summa N( 18 , 2 ))  
INDEX ON tabMainID TAG tabMainID  
SET ORDER TO  0   
INSERT INTO tabMain (tabMainID, Summa) VALUES ( 1 ,  0 )  
INSERT INTO tabMain (tabMainID, Summa) VALUES ( 2 ,  0 )  
INSERT INTO tabMain (tabMainID, Summa) VALUES ( 3 ,  0 )  
    
* Подчиненная таблица    
CREATE CURSOR tabChild (tabChildID I, tabMainID I, Qty I, Price N( 18 , 2 ))  
INDEX ON tabMainID TAG tabMainID  
SET ORDER TO  0   
INSERT INTO tabChild (tabChildID, tabMainID, Qty, Price) VALUES ( 1 ,  1 ,  10 ,  0 . 25 )  
INSERT INTO tabChild (tabChildID, tabMainID, Qty, Price) VALUES ( 2 ,  2 ,  15 ,  10 . 05 )  
INSERT INTO tabChild (tabChildID, tabMainID, Qty, Price) VALUES ( 3 ,  3 ,  30 ,  5 . 00 )
INSERT INTO tabChild (tabChildID, tabMainID, Qty, Price) VALUES ( 1 ,  1 ,  10 ,  0 . 25 )  
INSERT INTO tabChild (tabChildID, tabMainID, Qty, Price) VALUES ( 2 ,  2 ,  15 ,  10 . 05 )  
INSERT INTO tabChild (tabChildID, tabMainID, Qty, Price) VALUES ( 3 ,  3 ,  30 ,  5 . 00 )

* Собственно запрос

UPDATE tabMain ;  
SET Summa = Summa + tmp.sumPrice ;  
from (select ;
		tabMainID, ;
		Sum(tabChild.Qty*tabChild.Price) as sumPrice ;
	FROM tabChild ;  
	group by tabChild.tabMainID) as tmp ;
WHERE tabMain.tabMainID=tmp.tabMainID
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос на сложение
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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