Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вложенные IIF
|
|||
|---|---|---|---|
|
#18+
select ; IIF(rpt_it2bal.what='O',; && исходящие остатки IIF(cursor_peport_rules.valuta='I', cursor_balance.out_db_ost+cursor_balance.out_kr_ost,; IIF(cursor_peport_rules.valuta='R', cursor_balance.out_db_o_r+cursor_balance.out_kr_o_r,; IIF(cursor_peport_rules.valuta='V', cursor_balance.out_db_o_v+cursor_balance.out_kr_o_v,0))),; IIF(cursor_peport_rules.what='I',; && входящие остатки IIF(cursor_peport_rules.valuta='I', cursor_balance.in_db_ost+cursor_balance.in_kr_ost,; IIF(cursor_peport_rules.valuta='R', cursor_balance.in_db_o_r+cursor_balance.in_kr_o_r,; IIF(cursor_peport_rules.valuta='V', cursor_balance.in_db_o_v+cursor_balance.in_kr_o_v,0))),; IIF(cursor_peport_rules.what='B',; && обороты IIF(cursor_peport_rules.valuta='I', cursor_balance.db_oborot+cursor_balance.kr_oborot,; IIF(cursor_peport_rules.valuta='R', cursor_balance.db_obor_r+cursor_balance.kr_obor_r,; IIF(cursor_peport_rules.valuta='V', cursor_balance.db_obor_v+cursor_balance.kr_obor_v,0))),; 0))) as сумма; from ... VFP 7 вываливается с сообщением "Слишком сложное выражение SQL." Как жить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 16:00 |
|
||
|
Вложенные IIF
|
|||
|---|---|---|---|
|
#18+
Проверь следующее: -) Убедись, что перед каждым знаком переноса команды (точка с запятой) стоит пробел. Точнее, пробел нужен в тех местах, где необходимо выделить какое-либо ключевое слово. Например, в твоем примере перед ключевым словом "FROM" нет пробела. Это будет воспринято как ошибка. -) Убедись, что полная длина полученного SQL-выражения не превышает 8,192 символа -) В самую последнюю очередь можно поиграться настройкой SYS(3055). Но это крайний случай. По возможности, лучше ее не трогать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 16:20 |
|
||
|
Вложенные IIF
|
|||
|---|---|---|---|
|
#18+
funikovyuri > VFP 7 вываливается с сообщением "Слишком сложное выражение SQL." Как жить? Я считаю, что необходимо упростить выражение. Например, разбить его на три запроса: вычисления исходящих остатков, входящих остатков и оборотов, а затем четвертым просто объединить их. Может быть это будет немного длинее, зато логичнее и легче будет искать ошибки :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 16:30 |
|
||
|
Вложенные IIF
|
|||
|---|---|---|---|
|
#18+
Станислав C. Нет, не получиться - это не вычисление остатков - а нечто другое - union тут не поможет. Переписать можно - но уж больно некрасивый код получается... ВладимирМ , что перед каждым знаком переноса команды Вообще-то, это runtime ошибка не превышает 8,192 символа Не превышает SYS(3055). Игрался, но судя по всему он не для этого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 19:13 |
|
||
|
Вложенные IIF
|
|||
|---|---|---|---|
|
#18+
Кстати, а комментарии после точки с запятой давно ли разрешены? select ; bla-bla-bla ; && исходящие остатки from ttt Это во-первых. А во-вторых, почему бы не сделать select pr.x, pr.y ; from cursor_peport_rules as pr Короче будет ;-) В-третьих, udf в select'ах нормально работают: select my_udf(rpt_it2bal.what,cursor_peport_rules.valuta ; ,cursor_balance.out_db_ost, cursor_balance.out_kr_ost ; ,cursor_balance.out_db_o_r+cursor_balance.out_kr_o_r ; ,cursor_balance.out_db_o_v+cursor_balance.out_kr_o_v ; ) from ... ******** function my_udf lparameters pwhat, pval, pdost, pkost, pdor, pkor, pdov, pkov local lnout do case case pwhat ='O' do case case pval = 'I' lnout = pdost+pkost ...... return lnout ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 19:48 |
|
||
|
Вложенные IIF
|
|||
|---|---|---|---|
|
#18+
Вообще-то, это runtime ошибка Хочешь сказать, что на этапе отладки такой запрос выполняется без проблем? Может просто разные версии файлов при отладке и в Run-Time? Вообще-то, твое условие можно упростить. Например, для rpt_it2bal.what='O' и cursor_peport_rules.what='I' порядок расчета одинаков. Значит, их можно объединить в один IIF() IIF( rpt_it2bal.what='O' OR cursor_peport_rules.what='I', ..., ... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 10:16 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32541353&tid=1596476]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
152ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 496ms |

| 0 / 0 |
