powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / command contains unrecognized phrase/keyword
28 сообщений из 28, показаны все 2 страниц
command contains unrecognized phrase/keyword
    #39712799
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброго утра! при создании запроса в VFP вылетает ошибка. не поддерживается оператор case?
Код: sql
1.
2.
3.
4.
5.
6.
7.
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
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712801
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
case не поддерживается. Можно заменить на icase()
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712804
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

спасибо!
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712816
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

переделала. ошибка: отсутствует имя функции ) вроде все так должно быть....
Код: sql
1.
2.
3.
4.
5.
6.
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
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712820
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
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
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712826
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Точно! но при обработке снова ошибка: command contains unrecognized phrase/keyword ...
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712830
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая версия фокса?
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712831
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

VPF 6.0
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712835
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

делала еще через iff, то же самое
Код: sql
1.
2.
3.
4.
5.
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
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712838
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaDima T,

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

Найди отличия между твоим 21694846 и моим 21694853 icase() и попробуй правильно написать с использованием iif()
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712840
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

окей! спасибо!
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712958
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

у меня к Вам еще вопрос: при условиях в запросе результат выводится в 2 строки: в первой строке значение nor равно 0,000000, во второй строке результат nor тот, который должен быть
соответственно формулам.
как убрать строку с нулевым значением?
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712985
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
... having nor != 0
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39712994
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

так не работает, а если использовать с group by, результат в nor не верен будет.
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713003
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaDima T,

так не работает, а если использовать с group by, результат в nor не верен будет.
Должно работать без group by. Какая ошибка?
having это постусловие, проверяется результат запроса.
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713004
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

ошибки нет, результат без изменений
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713005
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно.

Попробуй во where добавить
Код: sql
1.
where ... and unr.unr1*pkr.plo*pkr.tol*unei.k != 0
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713009
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может там действительно не ноль? Проверь
Код: sql
1.
select norma.*, unr.unr1, pkr.plo, pkr.tol, unei.k ...


в той строке где ноль должен быть ноль в одном из множителей: unr1, plo, tol, k
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713015
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

сто процентов не 0. в результате selecta c условием, например, norma.pan="A" or norma.pan="À", выводится 2 одинаковые строки, но с разным nor: у одной записи 0,00000, у другой, как надо.
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713016
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

во условие добавила, все нормалёк! спасибо огроменное!
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713117
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

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


в результате записи дублируются. например, вместо 16 шт - (1113311315), выводится 32 шт. (1113311315).
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713118
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaDima T,

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


в результате записи дублируются. например, вместо 16 шт - (1113311315), выводится 32 шт. (1113311315).И что? Где вопрос?
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713119
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,

как сделать, чтобы было 16, а не 32 записи?
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713130
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaSergey Sizov,

как сделать, чтобы было 16, а не 32 записи?Правильно переписать запрос.
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713220
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaDima T,

можно задать еще вопрос (уж извините за надоедливость!)? такой простой запрос:
Код: sql
1.
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 и самодельные костыли.
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713354
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположим, у таблиц есть такие записи

Таблица pkr

ods oup1112
Таблица norma

ods fld_11314
Результат запроса

Код: sql
1.
select * from pkr, norma where pkr.ods = norma.ods


будет такой

pkr.ods pkr.oup norma.ods norma.fld_11113111412131214

Для простоты, можно считать результат объединения таблиц неким аналогом вложенных циклов. Т.е. для каждой записи таблицы pkr будут отобраны ВСЕ записи таблицы norma с тем же значением поля ods. Если у Вас в обоих таблицах есть несколько записей с одинаковым значением поля ods (т.е. связь типа много-ко-многим), то Вы и получите удвоение результата выборки

В отношение запросов Select-SQL понятие "текущая запись" просто не существует. Записи связываются между собой только и исключительно по значению полей, указанных в условии связи и никак иначе
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713360
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TTsYekaterinaDima T,

можно задать еще вопрос (уж извините за надоедливость!)? такой простой запрос:
Код: sql
1.
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 и самодельные костыли.Ну, это вы тут слегка перегнули...
Про степень нормализации сия ситуация не говорит ничего. Ибо мы не знаем, а автор, как обычно, посчитал это очевидным и недостойным упоминания, смысл данных в этих таблицах.
Ситуация показывает нам степень непонимания автором принципов работы запросов и стандартным для большинства людей неумением точно сформулировать свои мысли и желания даже на обычном языке, не говоря уж о языках программирования.
Вот сейчас в запросе она требует получить все сочетания записей из двух таблиц. А точно это ли ей надо? Судя по скудным комментариям ей таки надо записи из одной таблицы, имеющие значения в одном из полей, встречающиеся в в соответствующем поле другой таблицы. Согласитесь, что from pkr, norma where pkr.ods=norma.ods явно этому не соответствует? И что тут надо что-то другое написать? А то получается, что хочет одно, а требует другое и потом удивляется, что не получает желаемое.

2 TsYekaterina:
Таки займитесь правильным формулированием сначала задачи, а потом уже запрос по правильной формулировке пишИте.
Если сами не можете, то обращайтесь, но не темните, а полно описывайте данные и связанную с ними задачу.
...
Рейтинг: 0 / 0
command contains unrecognized phrase/keyword
    #39713376
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SizovПро степень нормализации сия ситуация не говорит ничего.
from pkr, norma where pkr.ods=norma.ods
это альтернативный способ записи
Код: sql
1.
from pkr join norma on pkr.ods=norma.ods


раз есть дубли, значит ods не является ключом ни одной из упомянутых таблиц, следовательно надо либо сначала нормализовать исходные данные и потом делать select, либо решать другим способом.
В любом случае это говорит о непонимании реляционной теории и необходимости ее поизучать.

Sergey SizovА точно это ли ей надо?
Согласен. Возможно надо совсем другое.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / command contains unrecognized phrase/keyword
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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