Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите сделать запрос! / 3 сообщений из 3, страница 1 из 1
17.12.2011, 21:21
    #37581325
Zopo4ckA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать запрос!
нужно создать запрос на увеличение надбавки на % вводимый в поле
...
Рейтинг: 0 / 0
17.12.2011, 21:26
    #37581330
Zopo4ckA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать запрос!
_screen.ActiveForm.release()
DO FORM form1
USE lect IN C
SELECT C
word=VAL(thisform.text1.Value)
LOCATE FOR nadbavka<word
IF FOUND()=.T.
DO while !EOF()
replace nadbavka WITH nadbavka+nadbavka/100*VAL(thisform.text2.Value)
CONTINUE
ENDDO
ENDIF

не работает=(
...
Рейтинг: 0 / 0
18.12.2011, 01:28
    #37581484
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать запрос!
Какой-то код немного извращенный
Я так понимаю, что nadbavka задана в процентах, t1 и t2 - тоже в процентах, при этом надо увеличить на t2 процентов надбавки, которые меньше t1 процентов по величине? ТО есть если имеем надбавки {10, 20, 30, 40, 50}, t1=30, t2=20, то получим в результате {12, 24, 30, 40, 50}?

Вообще, можно действовать так:
Код: sql
1.
2.
3.
4.
5.
DO FORM form1
lnT1=VAL(thisform.text1.Value)
lnT2=VAL(thisform.text2.Value)
USE lect IN c
REPLACE ALL FOR nadbavka < lnT1 nadbavka WITH nadbavka * (1 + lnT2/100) IN lect


Если ваша версия Фокса поддерживает UPDATE-SQL, то еще проще:
Код: sql
1.
2.
3.
4.
DO FORM form1
lnT1=VAL(thisform.text1.Value)
lnT2=VAL(thisform.text2.Value)
UPDATE lect SET nadbavka = nadbavka * (1 + lnT2/100) WHERE nadbavka < lnT1
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите сделать запрос! / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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