:: Visual Foxpro, Foxpro for DOS
replace с условием по двум полям
Алла
Автор

Сообщений: 25
Дата регистрации: 09.02.2005
У меня есть таблица dok1. Мне нужно сформировать в таблице сOtd поля sum1, sum41, sum42 (с нарастающим итогом)
на основе sum из таблицы dok1.
Поле Sum41 должно суммироваться только при условии dok1.bopl="41", а поле Sum42 при условии dok1.bopl="42".

Пока поля cOtd.sum1, cOtd.sum41, cOtd.sum42 у меня совпадают.
Каким образом можно вставить условие?


CREATE CURSOR cOtd (otd c(2),name c(30),sum n(19,2),sum1 n(19,2),sum41 n(19,2),sum42 n(19,2))

SELE dok1
SCAN
SELE cOtd
REPLACE cOtd.sum1 WITH cOtd.sum1+dok1.sum,;
cOtd.sum41 WITH cOtd.sum41+dok1.sum, cOtd.sum42 WITH cOtd.sum42+dok1.sum
SELE dok1
ENDSCAN
Ratings: 0 negative/0 positive
Re: replace с условием по двум полям
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
REPLACE cOtd.sum1 WITH cOtd.sum1+dok1.sum,;
cOtd.sum41 WITH iif(dok1.bopl="41",cOtd.sum41+dok1.sum,cOtd.sum41)... ну и т.д.




------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: replace с условием по двум полям
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
SELECT dok1
SUM sum FOR bopl='41' TO m.nSum41
SUM sum FOR bopl='42' TO m.nSum42
а после REPLACE



------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: replace с условием по двум полям
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Алла!

Нужна переменная, которая будет накапливать итог, а уж её и подсовывай в
REPLACE.
Для счёта используй функцию IIF() или банальный IF




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 19 (Гостей: 19)

© 2000-2024 Fox Club 
Яндекс.Метрика