Niraj K Verma Ответов: 2

Как использовать в пункт В, где условия для выбора в МС доступ


Я пишу запрос для select data, используя предложение in из MS Access 2007.

Что я уже пробовал:

мой вопрос таков

Выберите * из InvoiceInfo, где [InvoiceNo] содержит ('INV0001,INV0010')

но он возвращает 0 строк, где в таблице доступа эти значения существуют

2 Ответов

Рейтинг:
17

OriginalGriff

Вы проверяете наличие определенной строки: "INV0001,INV0010", поэтому, если эта точная строка - то есть оба номера счетов, разделенных запятой, - не находится хотя бы в одной строке, вы не получите никаких возвращенных строк. Вы не получите строк, где один из номеров счета-фактуры или другой найдены, или где они найдены, но также разделены пробелом.

Если ваша БД содержит номера счетов, разделенные запятыми, то она плохо спроектирована: вы должны использовать отдельную таблицу, содержащую каждый отдельный номер счета вместе с внешним ключом, который относится обратно к вашей исходной таблице, и извлекать данные с помощью запроса соединения.

Если это не так, вам может понадобиться предложение IN instaed:

SELECT * FROM InvoiceInfo WHERE InvoiceNo IN ('INV0001', 'INV0010');


Niraj K Verma

Спасибо, это работает

Рейтинг:
11

Praveen_P

Ты можешь попробовать вот так

SELECT *
FROM InvoiceInfo
WHERE InvoiceNo IN('INV0001','INV0002','INV0003');


Niraj K Verma

Спасибо, это работает

Praveen_P

добро пожаловать :)