|
|
|
Пустые строки
|
|||
|---|---|---|---|
|
#18+
Я сформировала курсор promreestr. В нем такие поля: cod_podr,dt,n_ved,p3,p4,p5,p6,p7,p8,p9,p10,p11. Мне надо из курсора удалить строки в которых n_ved=' ', а p3=0,p4=0,p5=0,p6=0,p7=0,p8=0,p9=0,p10=0. Пишу так: select promreestr.* ; FROM promreestr ; WHERE NOT EMPTY(n_ved) AND NOT EMPTY(p3) AND NOT EMPTY(p4) AND NOT EMPTY(p5) AND NOT EMPTY(p6) AND NOT EMPTY(p7) AND NOT EMPTY(p8) AND NOT EMPTY(p9) AND NOT EMPTY(p10) ; INTO CURSOR promreestr READWRITE На выходе пустой курсор, а должны быть не нулевые строки. В чем моя ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:28:51 |
|
||
|
Пустые строки
|
|||
|---|---|---|---|
|
#18+
Выкладывайте пример файла и код в архиве... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:34:01 |
|
||
|
Пустые строки
|
|||
|---|---|---|---|
|
#18+
Ну записать то можно и покороче: select promreestr.* ; FROM promreestr ; WHERE NOT (EMPTY(n_ved) AND NOT EMPTY(p3) AND p4+p5+p6+p7+p8+p9+p10=0) ; INTO CURSOR promreestr READWRITE А почему не правильно выбирает ... базу приаттач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:41:58 |
|
||
|
Пустые строки
|
|||
|---|---|---|---|
|
#18+
Поправочка: select promreestr.* ; FROM promreestr ; WHERE NOT (EMPTY(n_ved) AND p3+p4+p5+p6+p7+p8+p9+p10=0) ; INTO CURSOR promreestr READWRITE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:42:59 |
|
||
|
Пустые строки
|
|||
|---|---|---|---|
|
#18+
air1Я сформировала курсор promreestr. В нем такие поля: cod_podr,dt,n_ved,p3,p4,p5,p6,p7,p8,p9,p10,p11. Мне надо из курсора удалить строки в которых n_ved=' ', а p3=0,p4=0,p5=0,p6=0,p7=0,p8=0,p9=0,p10=0. Пишу так: select promreestr.* ; FROM promreestr ; WHERE NOT EMPTY(n_ved) AND NOT EMPTY(p3) AND NOT EMPTY(p4) AND NOT EMPTY(p5) AND NOT EMPTY(p6) AND NOT EMPTY(p7) AND NOT EMPTY(p8) AND NOT EMPTY(p9) AND NOT EMPTY(p10) ; INTO CURSOR promreestr READWRITE На выходе пустой курсор, а должны быть не нулевые строки. В чем моя ошибка? Условие через AND предполагает, что одновременно выполняются ВСЕ условия. Т.е. Вы хотите получить в выборке только те записи, в которых ни одно из полей не пустое. Если в записи есть хотя бы одно пустое поле (а все остальные заполнены), то такая запись исключается. Вообще, прежде чем раскрывать скобки в условиях, пишите это условие "в лоб". Надо исключить запись, если она удовлетворяет условию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Соответственно, оставить те записи которые НЕ удовлетворяют этому условию. Или наоборт удовлетворяют этому условию с отрицанием: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Понятно в чем ошибка? Надо наложить отрицание не на каждое из EMPTY(), а на результат проверки на EMPTY() Если раскрывать скобки, т.е. приписать к каждому EMPTY() условие отицания NOT, то одновременно надо заменить AND на OR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:48:23 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33381074&tid=1593053]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 500ms |

| 0 / 0 |
