Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите с запросом / 11 сообщений из 11, страница 1 из 1
27.08.2004, 16:59:46
    #32669375
OlegR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Уважаемые, помогите, не могу сообразить как сделать вот такой запросец

есть таблица (Main) в ней есть поле (nm),которое содержит такие строки:

1,2,3,6,7
2,4,5,6,7
3,4
1,2,3,4

есть форма со списоком с несвязным выделением , в нем я могу выбрать к примеру одну строку со значением (1) или несколько: типа (2,5,6)
мне требуется сделать поиск всех строк в таблице(Main) , которые содержат значения которые я выбрал в списке....
типа:
select id from Main where nm содержит! ( значения списка)
...
Рейтинг: 0 / 0
27.08.2004, 17:18:54
    #32669421
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Дэлай раз: в таблицу, присоединенной к списку, добавляеш поле switch (логическое). При выделении строки в списке ставим галку
Дэлай дваз:
Код: plaintext
select id from Main where nm IN (select nm from MyTable where switch = true)
...
Рейтинг: 0 / 0
27.08.2004, 17:34:44
    #32669456
OlegR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
похоже работать не будет.
если в списке выберем 1 значение то
получится
select id from Main where nm IN (1)

1,3,4 IN 1 не работает , если наоборот то да
...
Рейтинг: 0 / 0
27.08.2004, 18:02:28
    #32669514
N_A
N_A
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Строку запроса придется формировать программно, добавляя в условие "Like" значение выделенных элементов списка и обединяя их операцией "or".
Получится должно что-то вроде
Select * From Main Where nm Like '*1*' or nm Like '*3*' or nm Like '[5-9]'

см. справку по Like и справку по обработке списков с несвязаннм выделением.
...
Рейтинг: 0 / 0
27.08.2004, 18:07:14
    #32669529
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
OlegRпохоже работать не будет.
если в списке выберем 1 значение то
получится
select id from Main where nm IN (1)

1,3,4 IN 1 не работает , если наоборот то да
Тебе дан правильный ответ. Ты имееш ввиду абсолютно не взаимосвязанные вещи. Даже не знаю как это объяснить.
"1,3,4" - это значение поля
"1" - это тоже значение поля
"По умолчанию" значение поля рассматривается как единое целое.
Дальше думай сам
...
Рейтинг: 0 / 0
27.08.2004, 18:08:07
    #32669533
OlegR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Сеньк за поддержку, у меня этот вариант припасен, хотелось узнать есть ли возможность сравнения двух строк/рядов типа 1,2,3,4 и 2,4 вот

вариант с LIKE при выборе около 20 строк будет громоским...

если нет выхода, то придется работать с LIKE
...
Рейтинг: 0 / 0
27.08.2004, 18:12:14
    #32669538
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
OlegRСеньк за поддержку, у меня этот вариант припасен, хотелось узнать есть ли возможность сравнения двух строк/рядов типа 1,2,3,4 и 2,4 вот

вариант с LIKE при выборе около 20 строк будет громоским...

если нет выхода, то придется работать с LIKE
F1 InStr, Mid, Left, Right ...
Одним словом - хлопотно это :)
...
Рейтинг: 0 / 0
27.08.2004, 18:13:48
    #32669540
N_A
N_A
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Напиши свою функцию которая делает тоже что и Like, только для всех значений из списка сразу и вставь её в запрос.
...
Рейтинг: 0 / 0
27.08.2004, 18:19:57
    #32669549
OlegR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
N_AНапиши свою функцию которая делает тоже что и Like, только для всех значений из списка сразу и вставь её в запрос.
хе..... надо чтобы к понедельнику было готово, а с этим буду разбираться неделю...
в принципе есть split(), если им разбивать каждую строку nm в массив и сравнивать его с массивом из списка .....
как эта идея???
или лучще вариант с Like????
...
Рейтинг: 0 / 0
27.08.2004, 18:23:32
    #32669554
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Я хоть и не знаю всю задачу, но мне кажется, что проблема кроется в корне. Как значения 1,2,3,4 оказываются в одной ячейке? Наверное тоже не "легким движением руки". Отсюда вопрос: а зачем сначала забивать все в кучу, а потом разбирать ее??????????????
...
Рейтинг: 0 / 0
27.08.2004, 18:30:38
    #32669565
N_A
N_A
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
авторв принципе есть split(), если им разбивать каждую строку nm в массив и сравнивать его с массивом из списка .....
как эта идея???
или лучще вариант с Like????за то время что существует этот топик можно было-бы попробывать все 3 варианта, главное начать.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите с запросом / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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