Форум: "Базы";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
ВнизЗапрос по полю Найти похожие ветки
← →
Ирина (2005-08-04 11:16) [0]Для вывода НД я использую ADOQuery, и мне надо сделать выборку по полю "Район"(where Район like Центр), но Район-это лукаповское поле в ADOQuery, т.е. оно не содержит значения "Центр", а только код связи. Подскажите, что делать?
← →
Sergey13 © (2005-08-04 11:21) [1]>Подскажите, что делать?
Или читать про SQL свмостоятельно (это надо в любом случае) или хотя бы изложить проблему так, что бы было понятно не только тебе.
← →
ANB © (2005-08-04 11:23) [2]
> Ирина (04.08.05 11:16)
1) Ща ветку опять грохнут.
2) Если успею - делать выборку по полю связи. Если хочешь именно по тексту - подвяжи таблицу - справочник районов.
← →
k2 © (2005-08-04 11:26) [3]select * from table1 where raion_id in (select id from raions_table where raion_name like "Центр")
?
← →
ЮЮ © (2005-08-04 11:30) [4]WHERE Район IN (SELECT КодРайона FROM Районы WHERE Название LIKE "Центр%")
← →
Ирина (2005-08-04 11:34) [5]Я вывожу в DBGrid таблицу из БД с помощью ADOQuery, но поле "Район" имеет значение таблицы как код(key)(1,2,3...), с пом. которого связывается с другой таблицей, полем "region" (в ADOTable) и оттуда вытаскивает само название района, т.е оно лукаповское. Необходимо сделать выборку по полю "Район". Как?
← →
angel_b © (2005-08-04 11:34) [6][Район]=<код слова "Центр" в справочнике>,
а если надо выбрать одновременно несколько районов то
[Район] IN ("код-связи 1", "код-связи 2", ...)
ЗЫ: Учите SQL и БД
← →
Sergey13 © (2005-08-04 11:43) [7]2[5] Ирина (04.08.05 11:34)
select * from Mytable mt,region r
where mt.raion_id=r.raion_id
Далее в зависимости от условия (по коду или имени)
AND r.raion_id=:raion_id
или
AND r.raion_NAME=:raion_NAME
← →
ЮЮ © (2005-08-04 11:44) [8]>Как?
см.[3] и [4]
Или ещё имена таблиц и полей зп вас подставить? Надо было сразу их представить на суд общественности, а теперь уж сами :)
← →
Ирина (2005-08-04 11:52) [9]Выдает ошибку: "Параметр Район не имеет значения по умолчанию"!!!
← →
ANB © (2005-08-04 11:55) [10]
> Ирина (04.08.05 11:52) [9]
- бред какой. При чем тут значения по умолчанию ?
Код в студию.
← →
Sergey13 © (2005-08-04 11:55) [11]2[9] Ирина (04.08.05 11:52)
И что не понятно в тексте ошибки?
← →
Ирина (2005-08-04 11:57) [12]Когда я делаю ADOQuery активным выдает такую ошибку.
← →
ЮЮ © (2005-08-04 12:00) [13]Ну так поставьте какое нибудь значение, "" хотя бы, т.е. сначала с районом определитесь, а потом уж ...
← →
Ирина (2005-08-04 12:00) [14]Sergey13 © (04.08.05 11:55) [11]
А то, что почему она возникает, когда все написано по инструкции?
← →
Ирина (2005-08-04 12:00) [15]Sergey13 © (04.08.05 11:55) [11]
А то, что почему она возникает, когда все написано по инструкции?
← →
Ирина (2005-08-04 12:02) [16]Ну так поставьте какое нибудь значение
Ну так там куча значений в таблице!!
← →
Sergey13 © (2005-08-04 12:04) [17]2 [14] Ирина (04.08.05 12:00)
>А то, что почему она возникает, когда все написано по инструкции?
Смелое утверждение. 8-)
По какой инструкции? Все ли написано?
Я вот подозреваю что значения параметрам ты не присваивала.
Вообще код/тексты запросов будут опубликованы?
← →
ANB © (2005-08-04 12:06) [18]Да, и структура таблиц тоже !!!
← →
Ирина (2005-08-04 12:10) [19]По какой инструкции
А по той, что написал мастер ЮЮ (WHERE Район IN (SELECT КодРайона FROM Районы WHERE Название LIKE "Центр%")! и все правильно.
А вод и код, пожалуйста:
select * from дома
where Район in(select region from справочник_домов where region like "Центр")
← →
k2 © (2005-08-04 12:13) [20]в подзапросе надо выбирать наверное код района а не название, смотря кто такой region
← →
Ирина (2005-08-04 12:16) [21]в подзапросе надо выбирать наверное код района а не название, смотря кто такой region
Ошибочка вышла: не region, а key.
Вот так все выгледит:
select * from дома
where Район in(select region from справочник_домов where region like "Центр")
← →
ANB © (2005-08-04 12:18) [22]
> Ирина (04.08.05 12:16) [21]
- опять название.
Структуры таблиц опубликуй. И зарегистрируйся.
← →
Ирина (2005-08-04 12:20) [23]- опять название
select * from дома
where Район in(select key from справочник_домов where region like "Центр")
Структуры таблиц опубликуй. И зарегистрируйся.
?????
← →
Sergey13 © (2005-08-04 12:24) [24]2[23] Ирина (04.08.05 12:20)
>?????
ANB тебя в ЗАГС зовет. 8-)
← →
ЮЮ © (2005-08-04 12:24) [25]>Структуры таблиц опубликуй
Думаешь стоит?
Если есть такое:
Дома(
Район,
...
)
справочник_домов(
key,
region
)
и связь:
Дома.Район ... справочник_домов.key
← →
ANB © (2005-08-04 12:27) [26]
> Sergey13 © (04.08.05 12:24) [24]
- женатый я. Третий раз. Причем со второй еще не разведен. Разве что гарем завести.
> Ирина (04.08.05 12:20) [23]
Зарегистрироваться нужно на нашем сайте.
Таблицы лучше опубликовать, чтобы народ не прыгал с бубном.
← →
Ирина (2005-08-04 12:27) [27]ANB тебя в ЗАГС зовет. 8-)
А по существу?
← →
Ирина (2005-08-04 12:29) [28]Таблицы лучше опубликовать
Каким образом?
← →
ЮЮ © (2005-08-04 12:31) [29]т.к. параметров в запросе нет, значит где-то ошибка в названии поля, в результате чего оно воспринимается как "параметр"
select * from дома
where Район in(select key from справочник_домов where region like :Region + "%")
а параметр запроса ЗАПОЛНЯТЬ перед открытием, беря его значение из какого-нибудь TEdit-а, и, соответственно, изменяя значение в котором - переоткрывать запрос.
Кстати, зачем Like и поиск по имени, если проще TDBKookupCombo,
ListSource которого сделать MasterSourc-ом запроса.
← →
k2 © (2005-08-04 12:31) [30]описать из каких полей состоят используемые таблицы
← →
Sergey13 © (2005-08-04 12:36) [31]2[26] ANB © (04.08.05 12:27)
>- женатый я. Третий раз. Причем со второй еще не разведен.
Так ты многоженец?!!! 8-)
2[27] Ирина (04.08.05 12:27)
>А по существу?
А сама по существу много написАла?
Ни структуры таблиц, ни условия формирования условия (сори за тавтологию). Как ограничиваются нужные районы? Узер ввел слово или узер выбрал из справочника?
IN в таком запросе ни к чему, ИМХО. Достаточно просто объединить таблицы.
← →
evvcom © (2005-08-04 13:31) [32]
> where region like :Region + "%"
Я сам не пытал такой запрос (или пытал, но очень давно, потому не помню), а вот напарник недавно пришел к выводу на тестах с MSSQL, что такое условие не отрабатывает, как предполагается. Потом "%" он вынес в присвоение самому параметру, а в запросе оставил только like :Region, и все заработало, как должно.
Может я не прав, но тестить это сейчас нет желания.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.013 c