Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1123063665
_Lucky_
2005-08-03 14:07
2005.09.18
Организация доступа к БД и средства администрирования БД


14-1124463219
TStas
2005-08-19 18:53
2005.09.18
Насколько это кривой способ?


2-1123831677
webpauk
2005-08-12 11:27
2005.09.18
Автообновление


14-1124896995
lakk
2005-08-24 19:23
2005.09.18
траблы с монитором


2-1123826523
syte_ser78
2005-08-12 10:02
2005.09.18
Почему и как исправить?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский