Вот пример того, как я решил проблему с ошибкой базы данных. Это было сделано десять лет назад на linux box, поэтому L & F довольно мотивирован, но он показывает общую концепцию:
альтернативный текст http://www1.clearlight.com/~oakley/dbquery.jpg
Это работает почти так же, как вы ожидаете. Вы можете изменить «ЛЮБОЕ из следующего» на «ВСЕ из следующего», а метки на последующих строках изменятся с «или» на «и». Кнопка «IS» может быть изменена на «IS NOT», а также на «Matches pattern» и некоторые другие варианты.
Вы нажимаете кнопки +/-, чтобы добавить дополнительные критерии. Вы можете создавать логические группы, которые позволяют вам делать такие выражения, как «a или (b и c)», но при этом они почти читаются как набор английских предложений.
В вашем случае вместо раздела «Заказ по» у вас может быть раздел «делать эти вещи».
Это было бы неудобно использовать, если вам нужно создавать очень сложные запросы, но если вам нужен сложный запрос, вы, вероятно, достаточно умны, чтобы не нуждаться в подобном графическом интерфейсе. Это было разработано больше для обычного пользователя для простых специальных запросов.
Я бы определенно изменил бы это, если бы мне пришлось это делать заново, но базовая механика работает довольно хорошо.