powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Пустые строки
5 сообщений из 5, страница 1 из 1
Пустые строки
    #33381074
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

На выходе пустой курсор, а должны быть не нулевые строки. В чем моя ошибка?
...
Рейтинг: 0 / 0
Пустые строки
    #33381097
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выкладывайте пример файла и код в архиве...
...
Рейтинг: 0 / 0
Пустые строки
    #33381127
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну записать то можно и покороче:
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

А почему не правильно выбирает ... базу приаттач.
...
Рейтинг: 0 / 0
Пустые строки
    #33381131
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправочка:
select promreestr.* ;
FROM promreestr ;
WHERE NOT (EMPTY(n_ved) AND p3+p4+p5+p6+p7+p8+p9+p10=0) ;
INTO CURSOR promreestr READWRITE
...
Рейтинг: 0 / 0
Пустые строки
    #33381156
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
EMPTY(n_ved) AND ;
EMPTY(p3) AND ;
EMPTY(p4) AND ;
EMPTY(p5) AND ;
EMPTY(p6)  AND ;
EMPTY(p7) AND ;
EMPTY(p8) AND ;
EMPTY(p9) AND ;
EMPTY(p10)

Соответственно, оставить те записи которые НЕ удовлетворяют этому условию. Или наоборт удовлетворяют этому условию с отрицанием:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
NOT ;
( ;
EMPTY(n_ved) AND ;
EMPTY(p3) AND ;
EMPTY(p4) AND ;
EMPTY(p5) AND ;
EMPTY(p6)  AND ;
EMPTY(p7) AND ;
EMPTY(p8) AND ;
EMPTY(p9) AND ;
EMPTY(p10) ;
)

Понятно в чем ошибка? Надо наложить отрицание не на каждое из EMPTY(), а на результат проверки на EMPTY()

Если раскрывать скобки, т.е. приписать к каждому EMPTY() условие отицания NOT, то одновременно надо заменить AND на OR.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Пустые строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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