Текущий архив: 2008.08.10;
Скачать: CL | DM;
Вниз
Сформировать запрос Найти похожие ветки
← →
Tornado © (2008-02-27 14:43) [0]Встала проблема формирования запроса. Задача такая: имеем 10 таблиц (структура одинакова) в БД Access. На форме имеем ListBox (с чекбоксами) в который выведен список этих десяти таблиц. Пользователь может выбрать одну или несколько таблиц из ListBox (отметив нужные таблицы флажками) и по нажатию кнопки должен сформироватся запрос. Но запрос должен формироваться только из тех таблиц которые отметил пользователь. Как правильно написать запрос, ведь если пользователь отметил одну таблицу, запрос прост: SELECT * FROM TABLE_NAME WHERE....(где TABLE_NAME - имя таблицы из списка), но если он отметит первую таблицу, пятую и допустим шестую как быть тогда?
← →
Sergey13 © (2008-02-27 14:45) [1]> [0] Tornado © (27.02.08 14:43)
> Задача такая: имеем 10 таблиц (структура одинакова) в БД Access.
Берем веревку, мыло и ищем крепкий сук в безлюдном месте. 8-)
Или объединяем все в одну таблицу с отдельным полем - признаком их разности.
← →
Tornado © (2008-02-27 14:54) [2]Sergey13 © (27.02.08 14:45) [1]
Вешацо рановато :)
По поводу объединения - наверно так и придется...
← →
Tornado © (2008-02-27 14:55) [3]Хотя все равно не доганяю как запрос написать...
← →
Sergey13 © (2008-02-27 15:09) [4]> [3] Tornado © (27.02.08 14:55)
С объединенной таблицей или в текущем варианте?
1. IN
2. UNION
← →
Tornado © (2008-02-27 15:23) [5]Sergey13 © (27.02.08 15:09) [4]
Я знаю как объединить таблицы с помощью UNION...тут в другом заковыка. Придется ведь писать кучу разных запросов (если текущий вариант), т.е.:
1 вариант. пользователь выбрал одну таблицу:
SELECT * FROM TABLE_NAME_1 WHERE....
2 вариант. пользователь выбрал две таблицы:
SELECT * FROM TABLE_NAME_1, TABLE_NAME_2 WHERE....
3 вариант. пользователь выбрал 5 таблиц:
SELECT * FROM TABLE_NAME_1,TABLE_NAME_2,TABLE_NAME_3,TABLE_NAME_4,TABLE_NAME_5 WHERE....
и т.д. получается для каждого варианта свой запрос писать?
← →
Sergey13 © (2008-02-27 15:48) [6]> [5] Tornado © (27.02.08 15:23)
> получается для каждого варианта свой запрос писать?
Т.е. ты желаешь потрахаться со своим вариантом прежде чем переделать на нормальную структуру? Дело твое конечно.
Тогда уж не
> SELECT * FROM TABLE_NAME_1,TABLE_NAME_2,TABLE_NAME_3,TABLE_NAME_4,
> TABLE_NAME_5 WHERE....
а
SELECT * FROM TABLE_NAME_1 WHERE....
UNION ALL
SELECT * FROM TABLE_NAME_2 WHERE....
ибо твой вариант запроса, ИМХО, вообще неработоспособен.
> Придется ведь писать кучу разных запросов
Ну и что? Контора пишет.
Решение я тебе уже сказал. Можно еще вьюху построить (вроде аксес позволяет это) и работать с ней, но скорее всего тормоза будут приличные.
← →
www (2008-02-27 15:58) [7]небось, помесячная структура
← →
Tornado © (2008-02-27 16:11) [8]Sergey13 © (27.02.08 15:48) [6]
Спасиб. Будем реализовывать :)
Страницы: 1 вся ветка
Текущий архив: 2008.08.10;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.011 c