Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Запрос по полю   Найти похожие ветки 

 
Ирина   (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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.125 c
14-1125072205
Cyberdemon
2005-08-26 20:03
2005.09.18
Это нормально что ФАК не работает и ...


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


10-1102961595
normandia
2004-12-13 21:13
2005.09.18
добавление надписи в документ word


3-1122994415
wqer
2005-08-02 18:53
2005.09.18
ORACLE odac


14-1124880528
Korvet
2005-08-24 14:48
2005.09.18
Где скачать "Ras"