Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.08.10;
Скачать: [xml.tar.bz2];

Вниз

Сформировать запрос   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
15-1213883179
Dmitry S
2008-06-19 17:46
2008.08.10
сила/ускорение/скорость


15-1214220098
int64
2008-06-23 15:21
2008.08.10
Нет притока программистов в Delphi?


11-1190461365
Robt
2007-09-22 15:42
2008.08.10
ScrollBar ошибка !!!!


15-1214226247
dert333
2008-06-23 17:04
2008.08.10
Ошибка с установками


2-1215448273
blazerad
2008-07-07 20:31
2008.08.10
Создание БД для Клиент сервера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский