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

Вниз

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

 
Dell3r ©   (2005-07-01 13:19) [0]

На форме компоненты:
Query  - DataSource  - DBGrid;
Table1 - DataSource1 - DBGrid1;
Table2 - DataSource2;

Свойства Query:
SQL - "Select * from Name"

Свойства Table1:
MasterSource - DataSource
IndexName    - NameNo
MasterFields - NameNo
TableName    - Phone.dbf

Свойства Table2:
TableName    - Phone.dbf

Номера телефонов записываются в таком виде:
0955552265
8482225891

Нужно в Table2 найти все записи в которых первые несколько цифр совпадают с введенными пользователем.(Значания могут быть и 10-значными цифрами, например все записи в которых код города равен 095, Потом в каждой похожей записи вернуть значание NameNo.
В результате в Query ввести запрос типа:
Query.Sql.Add("Select * from NAME Where NAMENO="+"А вот здесь все NameNo из Table2").

Заранее благодарен.


 
Sergey13 ©   (2005-07-01 13:25) [1]

А почему не выкинуть все твои навороты и не написать
"Select * from NAME Where NAMENO Like "%095"


 
Dell3r ©   (2005-07-01 13:30) [2]

во второй таблице два столбца NameNo и Telefon
В первой NameNo и Name
Так вот надо найти все "095" во второй и если такие есть, то их NameNo Перечислить в Query


 
evvcom ©   (2005-07-01 13:30) [3]


> например все записи в которых код города равен 095

Если у тебя нет поля "код города", то твоя задача невыполнима, потому что длина кода города в общем случае - величина переменная. Другое дело, если ты сформулируешь условие так: "все записи, начинающиеся (или содержащие) строку "095"". Тогда см. [1].


 
Danilka ©   (2005-07-01 13:38) [4]

Dell3r ©   (01.07.05 13:30)
во второй таблице два столбца NameNo и Telefon
В первой NameNo и Name
Так вот надо найти все "095" во второй и если такие есть, то их NameNo Перечислить в Query


select t2.NameNo, t2.Name from table1 t1, table2 t2 where t1.NameNo = t2.NameNo and t2.Telefon like "8482%"

:)


 
evvcom ©   (2005-07-01 13:38) [5]

select n.* from Name n inner join Table2 t2 on t2.NameNo = n.NameNo where t2.NameNo Like :NameNo
Потом в Delphi: Query.ParamByname("NameNo").AsString := "%" + Edit1.Text + "%"; // Если "содержит"
и
.AsString := Edit1.Text + "%"; // Если "начинается с"


 
Dell3r ©   (2005-07-01 13:51) [6]

Danilka ©  (01.07.05 13:38) [4]
Немного не понял
select t2.NameNo - что такое t2


 
evvcom ©   (2005-07-01 13:54) [7]


> что такое t2

Это псевдоним Table2. См. внимательнее текст запроса.


 
Dell3r ©   (2005-07-01 13:59) [8]

Он у меня ругается на знак "="


 
Dell3r ©   (2005-07-01 14:14) [9]

Что-то не так.
select t2.NameNo, t2.Name
В таблице2 нету поля Name

Если в таблице Phone есть значения начинающиеся на 095, то из таблицы Name выбрать все записи в которых ТаблицаName.NameNo = ТаблицеPhone.NameNo


 
Sergey13 ©   (2005-07-01 14:19) [10]

2 [9] Dell3r ©   (01.07.05 14:14)
Тогда надо программиста звать.


 
Dell3r ©   (2005-07-01 14:25) [11]

Не смешно. Я с базами не так уж и давно работаю. к тому же учусь сам. Поэтому и прошу помощи



Страницы: 1 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.098 c
14-1121535997
Cincinnut
2005-07-16 21:46
2005.08.07
The Doors


14-1121421257
Магнум
2005-07-15 13:54
2005.08.07
<OBJECT> в HTML


6-1114540433
Galiaf
2005-04-26 22:33
2005.08.07
Как отправить при помощи "ServerSocket" Переменную типа массив?


3-1119878755
dolmat
2005-06-27 17:25
2005.08.07
Количество подключенных пользователей


14-1121422995
vajo
2005-07-15 14:23
2005.08.07
Планировщик заданий в Win XP