|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.08.2009, 07:25 | #1 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 14
|
помогите составить SQL запрос!!!!
Есть две таблици AGENT(с полями FIO_AGENT, TEL_AG), ARENDA_KVARTIR(с полями INF, FIO_SOBSNVENIK, TEL_SOBSNVENIK, FIO_AGENT).
Мне надо вывести в одну таблицу INF и FIO_SOBSNVENIK, TEL_SOBSNVENIK, если FIO_AGENT='Иванов И. И.', либо INF и FIO_AGENT, TEL_AGENT, если FIO_AGENT<>'Иванов И. И.'. Объясню для чего это надо: есть риелторская бд по аренде квартир, с ней работают N агентов. Допустим агент прошел автаризацию, ему выводиться список всех квартир(и его и других агентов) причём если это его кв. то он видит контактные данные собственника, а если нет то только контактные данные агента который работает с этим собственником. |
06.08.2009, 07:41 | #2 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
Код:
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
06.08.2009, 07:59 | #3 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 14
|
а как потом эти два запроса свести в одну таблицу????
т.е. будет три столбца: 1 - INF 2 - FIO_SOBSNVENIK либо FIO_AGENT (в зависимости от условия) 3 - TEL_SOBSNVENIK либо TEL_AGENT. |
06.08.2009, 09:08 | #4 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
не, обе выборки, как я понял, нужно в одну таблицу запихнуть. Тогда получится что-то типа этого:
Код:
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
06.08.2009, 10:44 | #5 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Код:
|
06.08.2009, 11:41 | #6 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 14
|
Спасибо, пока не побавал, но думаю подойдёт.....)))))))))
Товарищи, есть у кого книжки по составлению сложных запросов? Порылся в сети, в основном всё кгнижки описывают простейшие запросы. |
06.08.2009, 11:43 | #7 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 14
|
Код:
|
06.08.2009, 11:57 | #8 |
Пользователь
Регистрация: 04.08.2009
Сообщений: 48
|
И у меня вопрос вот листинг кода
procedure TForm2.Button1Click(Sender: TObject); var k:boolean; m:string; begin ProgressBar1.Position:=0; for i:=ProgressBar1.Min to ProgressBar1.Max do begin ProgressBar1.Position:=ProgressBar1 .Position+1; Sleep(30); Label5.Caption:='Идет поиск данных ' +IntToStr(ProgressBar1.Position)+ '%'; Application.ProcessMessages; end; ProgressBar1.Position:=0; Label5.Caption:=''; k:=false; ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select *'); ADOQuery1.SQL.Add('FROM Свод'); if CheckBox1.Checked then begin if not(k) then ADOQuery1.SQL.Add('where Сельсовет='+chr(39)+DBLookupComboBo x3.Text+chr(39)) else ADOQuery1.SQL.Add(' and Сельсовет='+chr(39)+DBLookupComboBo x3.Text+chr(39)) ; k:=true; end; if CheckBox2.Checked then begin if not(k) then ADOQuery1.SQL.Add('where КБК='+chr(39)+DBLookupComboBox4.Tex t+chr(39)) else ADOQuery1.SQL.Add(' and КБК='+chr(39)+DBLookupComboBox4.Tex t+chr(39)) ; k:=true; end; if CheckBox3.Checked then begin if not(k) then begin if (edit1.text<>'') and (edit2.text<>'') then ADOQuery1.SQL.Add('where Дата>=#'+edit1.Text+'# and Дата<=#'+edit2.Text+'#'); end else begin if (edit1.text<>'') and (edit2.text<>'') then ADOQuery1.SQL.Add('and Дата>=#'+edit1.Text+'# and Дата<=#'+edit2.Text+'#'); end; k:=true; end; ADOQuery1.Active:=false; ADOQuery1.Active:=true; end; и вот procedure TForm2.Button3Click(Sender: TObject); var k:boolean; m:string; begin ProgressBar1.Position:=0; for i:=ProgressBar1.Min to ProgressBar1.Max do begin ProgressBar1.Position:=ProgressBar1 .Position+1; Sleep(30); Label5.Caption:='Идет подсчет данных ' +IntToStr(ProgressBar1.Position)+ '%'; Application.ProcessMessages; end; ProgressBar1.Position:=0; Label5.Caption:=''; k:=false; ADOQuery2.Active:=false; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('Select Sum([Свод].[Сумма]) AS [Sum - Сумма]'); ADOQuery2.SQL.Add('FROM Свод'); if CheckBox1.Checked then begin if not(k) then ADOQuery2.SQL.Add('where Сельсовет='+chr(39)+DBLookupComboBo x3.Text+chr(39)) else ADOQuery2.SQL.Add(' and Сельсовет='+chr(39)+DBLookupComboBo x3.Text+chr(39)) ; k:=true; end; if CheckBox2.Checked then begin if not(k) then ADOQuery2.SQL.Add('where КБК='+chr(39)+DBLookupComboBox4.Tex t+chr(39)) else ADOQuery2.SQL.Add(' and КБК='+chr(39)+DBLookupComboBox4.Tex t+chr(39)) ; k:=true; end; if CheckBox3.Checked then begin if not(k) then begin if (edit1.text<>'') and (edit2.text<>'') then ADOQuery2.SQL.Add('where Дата>=#'+edit1.Text+'# and Дата<=#'+edit2.Text+'#'); end else begin if (edit1.text<>'') and (edit2.text<>'') then ADOQuery2.SQL.Add('and Дата>=#'+edit1.Text+'# and Дата<=#'+edit2.Text+'#'); end; k:=true; end; ADOQuery2.Active:=false; ADOQuery2.Active:=true; end; а как обеденить в один |
06.08.2009, 17:15 | #9 | |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
Цитата:
|
|
06.08.2009, 17:49 | #10 | |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Цитата:
LEFT означает, что главная таблица - ARENDA_KVARTIR. Т.е. из нее попадут все записи и к ним относящиеся из правой таблицы (из правой могут не все отобраться). Так же существуют конструкции RIGHT JOIN и INNER JOIN. В первой, соответственно, главная таблица - правая. Во втором случае отберутся только те записи, которые полностью удовлетворяют условию и в левой и в правой таблице.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вопросам знатокам и просто любителям, нужно составить не сложный sql запрос | modz | SQL, базы данных | 3 | 14.08.2013 11:20 |
Помогите составить запрос или перепроектировать БД | Neurotechnic | БД в Delphi | 1 | 27.07.2009 10:51 |
Помогите создать SQL запрос | Rain9 | SQL, базы данных | 5 | 25.11.2008 08:54 |
Помогите написать SQL запрос | Vedrus | SQL, базы данных | 1 | 22.07.2008 13:21 |
Несложный SQL запрос. Помогите, пожалуйста | novicer | БД в Delphi | 2 | 10.05.2007 16:21 |