powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / синтаксис эррор
14 сообщений из 14, страница 1 из 1
синтаксис эррор
    #38927793
Olesia_Dav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ругается на синтаксическую ошибку и все, я все вроде проверила правильно нигде запятых не забыла поставить вроде
select blpu,;
sum(IIF(plat=63001,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),c,0)),0)),0)),0)) as c71_1obrzab,sum(IIF(plat=63001,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),cusl,0)),0)),0)),0)) as cusl71_1obrzab,sum(IIF(plat=63001,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),s,0)),0)),0)),0)) as s71_1obrzab,;
sum(IIF(plat=63002,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),c,0)),0)),0)),0)) as c71_2obrzab,sum(IIF(plat=63002,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),cusl,0)),0)),0)),0)) as cusl71_2obrzab,sum(IIF(plat=63002,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),s,0)),0)),0)),0)) as s71_2obrzab,;
sum(IIF(plat=63018,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),c,0)),0)),0)),0)) as c71_18obrzab,sum(IIF(plat=63018,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),cusl,0)),0)),0)),0)) as cusl71_18obrzab,sum(IIF(plat=63018,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),s,0)),0)),0)),0)) as s71_18obrzab,;
sum(IIF(plat=63014,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),c,0)),0)),0)),0)) as c71_14obrzab,sum(IIF(plat=63014,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),cusl,0)),0)),0)),0)) as cusl71_14obrzab,sum(IIF(plat=63014,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),s,0)),0)),0)),0)) as s71_14obrzab,;
sum(IIF(plat=63023,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),c,0)),0)),0)),0)) as c71_23obrzab,sum(IIF(plat=63023,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),cusl,0)),0)),0)),0)) as cusl71_23obrzab,sum(IIF(plat=63023,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),s,0)),0)),0)),0)) as s71_23obrzab,;
sum(IIF(plat=63027,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),c,0)),0)),0)),0)) as c71_27obrzab,sum(IIF(plat=63027,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),cusl,0)),0)),0)),0)) as cusl71_27obrzab,sum(IIF(plat=63027,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),s,0)),0)),0)),0)) as s71_27obrzab,;
sum(IIF(plat=63024,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),c,0)),0)),0)),0)) as c71_24obrzab,sum(IIF(plat=63024,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),cusl,0)),0)),0)),0)) as cusl71_24obrzab,sum(IIF(plat=63024,(iif(n=71,(iif(app_goal=1,(IIF((INLIST(idsp,27,30)),s,0)),0)),0)),0)) as s71_24obrzab,;
sum(IIF(plat=63001,(iif(n=71,(IIF(idsp=12,c,0)),0)),0)) as c71_1cenzdor,sum(IIF(plat=63001,(iif(n=71,(IIF(idsp=12,cusl,0)),0)),0)) as cusl71_1cenzdor,sum(IIF(plat=63001,(iif(n=71,(IIF(idsp=12,s,0)),0)),0)) as s71_1cenzdor,;
sum(IIF(plat=63002,(iif(n=71,(IIF(idsp=12,c,0)),0)),0)) as c71_2cenzdor,sum(IIF(plat=63002,(iif(n=71,(IIF(idsp=12,cusl,0)),0)),0)) as cusl71_2cenzdor,sum(IIF(plat=63002,(iif(n=71,(IIF(idsp=12,s,0)),0)),0)) as s71_2cenzdor,;
sum(IIF(plat=63018,(iif(n=71,(IIF(idsp=12,c,0)),0)),0)) as c71_18cenzdor,sum(IIF(plat=63018,(iif(n=71,(IIF(idsp=12,cusl,0)),0)),0)) as cusl71_18cenzdor,sum(IIF(plat=63018,(iif(n=71,(IIF(idsp=12,s,0)),0)),0)) as s71_18cenzdor,;
sum(IIF(plat=63014,(iif(n=71,(IIF(idsp=12,c,0)),0)),0)) as c71_14cenzdor,sum(IIF(plat=63014,(iif(n=71,(IIF(idsp=12,cusl,0)),0)),0)) as cusl71_14cenzdor,sum(IIF(plat=63014,(iif(n=71,(IIF(idsp=12,s,0)),0)),0)) as s71_14cenzdor,;
sum(IIF(plat=63023,(iif(n=71,(IIF(idsp=12,c,0)),0)),0)) as c71_23cenzdor,sum(IIF(plat=63023,(iif(n=71,(IIF(idsp=12,cusl,0)),0)),0)) as cusl71_23cenzdor,sum(IIF(plat=63023,(iif(n=71,(IIF(idsp=12,s,0)),0)),0)) as s71_23cenzdor,;
sum(IIF(plat=63027,(iif(n=71,(IIF(idsp=12,c,0)),0)),0)) as c71_27cenzdor,sum(IIF(plat=63027,(iif(n=71,(IIF(idsp=12,cusl,0)),0)),0)) as cusl71_27cenzdor,sum(IIF(plat=63027,(iif(n=71,(IIF(idsp=12,s,0)),0)),0)) as s71_27cenzdor,;
sum(IIF(plat=63024,(iif(n=71,(IIF(idsp=12,c,0)),0)),0)) as c71_24cenzdor,sum(IIF(plat=63024,(iif(n=71,(IIF(idsp=12,cusl,0)),0)),0)) as cusl71_24cenzdor,sum(IIF(plat=63024,(iif(n=71,(IIF(idsp=12,s,0)),0)),0)) as s71_24cenzdor;
from rz_L2 into cursor blpu_714 group by blpu
copy to blpu_714 TYPE FOX2X as 866
...
Рейтинг: 0 / 0
синтаксис эррор
    #38927839
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия фокса какая?

У меня в VFP6 и 9 нет ошибки, так работает:
Код: sql
1.
2.
3.
4.
create Cursor rz_L2 (blpu i, plat i, n i, app_goal i, idsp i, c i, cusl i, s i)

select blpu,;
...
...
Рейтинг: 0 / 0
синтаксис эррор
    #38927880
Fffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Длина команды.
...
Рейтинг: 0 / 0
синтаксис эррор
    #38927958
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olesia_Davfrom rz_L2 into cursor blpu_714 group by blpuсначала должен быть групбай, а уже потом инту
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928013
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirOlesia_Davfrom rz_L2 into cursor blpu_714 group by blpuсначала должен быть групбай, а уже потом инту
В фоксе не должен, это в MSSQL порядок важен.

Рабочий это код. Нет ошибок. Скопипасти, мой create Cursor добавь и запусти.

Там либо фокс очень древний (ниже 6-го) и какие-то ограничения по длине срабатывают, либо ошибка вовсе не в этом коде.
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928609
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для справки: Логическое выражение может состоять из нескольких выражений, объединенных через AND или OR.

Тогда запрос можно записать более компактно и наглядно

Код: sql
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
* Тестовый курсор для отладки синтаксиса запроса
create Cursor rz_L2 (blpu i, plat i, n i, app_goal i, idsp i, c i, cusl i, s i)

* Крайне не желательно использовать одинаковые имена как для источника, так и для цели
* Поэтому имя результирующего курсора изменил
* Также желательно всегда указывать внутренний алиас таблицы перед именами полей в команде Select-SQL

Select rz_L2.blpu, ;
	sum(Iif(rz_L2.plat=63001 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.c,0)) As c71_1obrzab, ;
	sum(Iif(rz_L2.plat=63001 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.cusl,0)) As cusl71_1obrzab, ;
	sum(Iif(rz_L2.plat=63001 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.s,0)) As s71_1obrzab, ;
	sum(Iif(rz_L2.plat=63002 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.c,0)) As c71_2obrzab, ;
	sum(Iif(rz_L2.plat=63002 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.cusl,0)) As cusl71_2obrzab, ;
	sum(Iif(rz_L2.plat=63002 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.s,0)) As s71_2obrzab, ;
	sum(Iif(rz_L2.plat=63018 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.c,0)) As c71_18obrzab, ;
	sum(Iif(rz_L2.plat=63018 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.cusl,0)) As cusl71_18obrzab, ;
	sum(Iif(rz_L2.plat=63018 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.s,0)) As s71_18obrzab, ;
	sum(Iif(rz_L2.plat=63014 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.c,0)) As c71_14obrzab, ;
	sum(Iif(rz_L2.plat=63014 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.cusl,0)) As cusl71_14obrzab, ;
	sum(Iif(rz_L2.plat=63014 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.s,0)) As s71_14obrzab, ;
	sum(Iif(rz_L2.plat=63023 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.c,0)) As c71_23obrzab, ;
	sum(Iif(rz_L2.plat=63023 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.cusl,0)) As cusl71_23obrzab, ;
	sum(Iif(rz_L2.plat=63023 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.s,0)) As s71_23obrzab, ;
	sum(Iif(rz_L2.plat=63027 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.c,0)) As c71_27obrzab, ;
	sum(Iif(rz_L2.plat=63027 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.cusl,0)) As cusl71_27obrzab, ;
	sum(Iif(rz_L2.plat=63027 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.s,0)) As s71_27obrzab, ;
	sum(Iif(rz_L2.plat=63024 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.c,0)) As c71_24obrzab, ;
	sum(Iif(rz_L2.plat=63024 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.cusl,0)) As cusl71_24obrzab, ;
	sum(Iif(rz_L2.plat=63024 And rz_L2.N=71 And rz_L2.app_goal=1 And Inlist(rz_L2.idsp,27,30),rz_L2.s,0)) As s71_24obrzab, ;
	sum(Iif(rz_L2.plat=63001 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.c,0)) As c71_1cenzdor, ;
	sum(Iif(rz_L2.plat=63001 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.cusl,0)) As cusl71_1cenzdor, ;
	sum(Iif(rz_L2.plat=63001 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.s,0)) As s71_1cenzdor, ;
	sum(Iif(rz_L2.plat=63002 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.c,0)) As c71_2cenzdor, ;
	sum(Iif(rz_L2.plat=63002 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.cusl,0)) As cusl71_2cenzdor, ;
	sum(Iif(rz_L2.plat=63002 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.s,0)) As s71_2cenzdor, ;
	sum(Iif(rz_L2.plat=63018 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.c,0)) As c71_18cenzdor, ;
	sum(Iif(rz_L2.plat=63018 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.cusl,0)) As cusl71_18cenzdor, ;
	sum(Iif(rz_L2.plat=63018 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.s,0)) As s71_18cenzdor, ;
	sum(Iif(rz_L2.plat=63014 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.c,0)) As c71_14cenzdor, ;
	sum(Iif(rz_L2.plat=63014 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.cusl,0)) As cusl71_14cenzdor, ;
	sum(Iif(rz_L2.plat=63014 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.s,0)) As s71_14cenzdor, ;
	sum(Iif(rz_L2.plat=63023 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.c,0)) As c71_23cenzdor, ;
	sum(Iif(rz_L2.plat=63023 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.cusl,0)) As cusl71_23cenzdor, ;
	sum(Iif(rz_L2.plat=63023 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.s,0)) As s71_23cenzdor, ;
	sum(Iif(rz_L2.plat=63027 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.c,0)) As c71_27cenzdor, ;
	sum(Iif(rz_L2.plat=63027 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.cusl,0)) As cusl71_27cenzdor, ;
	sum(Iif(rz_L2.plat=63027 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.s,0)) As s71_27cenzdor, ;
	sum(Iif(rz_L2.plat=63024 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.c,0)) As c71_24cenzdor, ;
	sum(Iif(rz_L2.plat=63024 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.cusl,0)) As cusl71_24cenzdor, ;
	sum(Iif(rz_L2.plat=63024 And rz_L2.N=71 And rz_L2.idsp=12,rz_L2.s,0)) As s71_24cenzdor ;
from rz_L2 ;
into Cursor blpu_714 ;
group By rz_L2.blpu

* Строго говоря, в данном случае эта команда лишняя, но для порядка лучше всегда писать
select cur_714

* Копирование результата в таблицу
copy to blpu_714 TYPE FOX2X as 866 
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928613
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следует иметь в виду, что для DBF-таблиц формата Fox2x имена полей не могут быть длиннее 10 символов. Системное ограничение. Впрочем, и для свободных DBF-таблиц (не включенных в контейнер базы данных DBC) любой версии FoxPro это также справедливо.

На практике, это означает, что имена полей курсора при конвертации в формат Fox2x будут обрезаны до первых 10 символов. Как следствие, вместо имени поля, скажем "cusl71_14cenzdor" в таблице Fox2x будет поле с именем "cusl71_14c". Это может привести к дублированию имен полей, что недопустимо. Хотя, в данном конкретном случае этого не произойдет. Первые 10 символов будут уникальны.
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928648
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FffffffffffffДлина команды.
В данном случае длина команды чуть менее 4 тысяч символов.

Для Visual FoxPro (любой версии) максимальная длина одной команда 8,192 символов. Т.е. укладываемся...
Для FPx2.6 максимальная длина одной команды 2,048 символов. Но как-то сомнительно, что это FP2.x...
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928829
Olesia_Dav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я нашла в каком именно запросе ругается на синтаксическую ошибку

select blpu,;
ROUND(sum(IIF(plat=63001,(iif(n=73,(IIF((INLIST(app_goal,0,2)),(IIF(BETWEEN(vozr,0,17),(cuet/2.7),(cuet/2.9))),0)),0)),0)),2) as 1cstpos73;
from rz_L2 GROUP BY blpu
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928843
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельзя писать round(sum(...), 2)
можно
Код: sql
1.
sum(round(..., 2))


но это не совсем одно и тоже, т.к. сначала каждое слагаемое округляется, затем все складываются.

если надо округлить именно сумму, то сначала посчитать точно, затем округлять следующим запросом
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928866
Olesia_Dav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказывается что в fox-е нельзя называть поля с чисел, поэтому д.быть
select blpu,;
ROUND(sum(IIF(plat=63001,(iif(n=73,(IIF((INLIST(app_goal,0,2)),(IIF(BETWEEN(vozr,0,17),(cuet/2.7),(cuet/2.9))),0)),0)),0)),2) as cst1pos73;
from rz_L2 GROUP BY blpu
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928870
Olesia_Dav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928873
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНельзя писать round(sum(...), 2)С чего бы это вдруг?
Dima Tесли надо округлить именно сумму, то сначала посчитать точно, затем округлять следующим запросомЫ? У меня на девятке работает.
...
Рейтинг: 0 / 0
синтаксис эррор
    #38928879
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirDima TНельзя писать round(sum(...), 2)С чего бы это вдруг?
Неправ. Затестил, можно, работает.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / синтаксис эррор
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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