Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
доброго утра! при создании запроса в VFP вылетает ошибка. не поддерживается оператор case?
select norma.*, nor case ;
when unr.pan="A" or unr.pan="À" then unr.unr1*pkr.plo*pkr.tol*unei.k as nor ;
when unr.pan="P" or unr.pan="Ð" then unr.unr1*pkr.plo*pkr.tol*unei.k*1.667*1.006 as nor ;
else unr.unr1*pkr.plo*unei.k as nor ;
END ;
from unr, pkr, unei, norma where pkr.ods=norma.ods and unr.obm=norma.obm ;
and unr.tpr=norma.tpr and unr.kets=unei.kets
4 окт 18, 09:35    [21694820]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
case не поддерживается. Можно заменить на icase()
4 окт 18, 09:39    [21694824]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

спасибо!
4 окт 18, 09:48    [21694829]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

переделала. ошибка: отсутствует имя функции ) вроде все так должно быть....
select norma.*, nor ;
(icase unr.pan="A" or unr.pan="À", unr.unr1*pkr.plo*pkr.tol*unei.k as nor, ;
unr.pan="P" or unr.pan="Ð", unr.unr1*pkr.plo*pkr.tol*unei.k*1.667*1.006 as nor, ;
unr.unr1*pkr.plo*unei.k as nor) ;
from unr, pkr, unei, norma where pkr.ods=norma.ods and unr.obm=norma.obm ;
and unr.tpr=norma.tpr and unr.kets=unei.kets
4 окт 18, 10:09    [21694846]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
select norma.*, ;
icase( unr.pan="A" or unr.pan="À", unr.unr1*pkr.plo*pkr.tol*unei.k, ;
unr.pan="P" or unr.pan="Ð", unr.unr1*pkr.plo*pkr.tol*unei.k*1.667*1.006, ;
unr.unr1*pkr.plo*unei.k)  as nor;
from unr, pkr, unei, norma where pkr.ods=norma.ods and unr.obm=norma.obm ;
and unr.tpr=norma.tpr and unr.kets=unei.kets
4 окт 18, 10:13    [21694853]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

Точно! но при обработке снова ошибка: command contains unrecognized phrase/keyword ...
4 окт 18, 10:20    [21694862]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
Какая версия фокса?
4 окт 18, 10:24    [21694868]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

VPF 6.0
4 окт 18, 10:24    [21694869]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

делала еще через iff, то же самое
select norma.*, nor ;
iif ((unr.pan="A" or unr.pan="À"), unr.unr1*pkr.plo*pkr.tol*unei.k as nor, ;
iif ((unr.pan="P" or unr.pan="Ð"), unr.unr1*pkr.plo*pkr.tol*unei.k*1.667*1.006 as nor, unr.unr1*pkr.plo*pkr.tol*unei.k*1.006 as nor))  ;
from unr, pkr, unei, norma where pkr.ods=norma.ods and unr.obm=norma.obm ;
and unr.tpr=norma.tpr and unr.kets=unei.kets
4 окт 18, 10:30    [21694875]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
TsYekaterina
Dima T,

VPF 6.0

В 6-ке не было icase(), там только через iif()

Найди отличия между твоим 21694846 и моим 21694853 icase() и попробуй правильно написать с использованием iif()
4 окт 18, 10:36    [21694879]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

окей! спасибо!
4 окт 18, 10:38    [21694881]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

у меня к Вам еще вопрос: при условиях в запросе результат выводится в 2 строки: в первой строке значение nor равно 0,000000, во второй строке результат nor тот, который должен быть
соответственно формулам.
как убрать строку с нулевым значением?
4 окт 18, 13:08    [21695116]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
... having nor != 0
4 окт 18, 13:40    [21695169]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

так не работает, а если использовать с group by, результат в nor не верен будет.
4 окт 18, 13:57    [21695198]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
TsYekaterina
Dima T,

так не работает, а если использовать с group by, результат в nor не верен будет.

Должно работать без group by. Какая ошибка?
having это постусловие, проверяется результат запроса.
4 окт 18, 14:05    [21695214]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

ошибки нет, результат без изменений
4 окт 18, 14:07    [21695216]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
Странно.

Попробуй во where добавить
where ... and unr.unr1*pkr.plo*pkr.tol*unei.k != 0
4 окт 18, 14:09    [21695218]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
А может там действительно не ноль? Проверь
select norma.*, unr.unr1, pkr.plo, pkr.tol, unei.k ...

в той строке где ноль должен быть ноль в одном из множителей: unr1, plo, tol, k
4 окт 18, 14:14    [21695226]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

сто процентов не 0. в результате selecta c условием, например, norma.pan="A" or norma.pan="À", выводится 2 одинаковые строки, но с разным nor: у одной записи 0,00000, у другой, как надо.
4 окт 18, 14:17    [21695232]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

во условие добавила, все нормалёк! спасибо огроменное!
4 окт 18, 14:19    [21695233]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Dima T,

можно задать еще вопрос (уж извините за надоедливость!)? такой простой запрос:
select pkr.ods, pkr.oup, pkr.tpr, pkr.prs from pkr, norma where pkr.ods=norma.ods

в результате записи дублируются. например, вместо 16 шт - (1113311315), выводится 32 шт. (1113311315).
4 окт 18, 16:32    [21695479]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1402
TsYekaterina
Dima T,

можно задать еще вопрос (уж извините за надоедливость!)?
Можно.
такой простой запрос:
select pkr.ods, pkr.oup, pkr.tpr, pkr.prs from pkr, norma where pkr.ods=norma.ods

в результате записи дублируются. например, вместо 16 шт - (1113311315), выводится 32 шт. (1113311315).
И что? Где вопрос?
4 окт 18, 16:36    [21695482]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Sergey Sizov,

как сделать, чтобы было 16, а не 32 записи?
4 окт 18, 16:37    [21695485]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1402
TsYekaterina
Sergey Sizov,

как сделать, чтобы было 16, а не 32 записи?
Правильно переписать запрос.
4 окт 18, 16:56    [21695506]     Ответить | Цитировать Сообщить модератору
 Re: command contains unrecognized phrase/keyword  [new]
Dima T
Member

Откуда:
Сообщений: 13354
TsYekaterina
Dima T,

можно задать еще вопрос (уж извините за надоедливость!)? такой простой запрос:
select pkr.ods, pkr.oup, pkr.tpr, pkr.prs from pkr, norma where pkr.ods=norma.ods

в результате записи дублируются. например, вместо 16 шт - (1113311315), выводится 32 шт. (1113311315).

Это говорит о том что данные не нормализованы и к ним нельзя применять select. Советую взять любую книгу про СУБД и прочитать там теорию про нормальные формы.

Язык SQL можно использовать только если данные хранятся согласно реляционной теории. Если под словом "таблица" понимается тоже что и таблица экселя, то SCAN ... ENDSCAN и самодельные костыли.
4 окт 18, 18:56    [21695684]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / FoxPro, Visual FoxPro Ответить