Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выборка из нескольких таблиц,с вычисляемым полем


alexsashkan ©   (2008-02-11 18:15:00) 

ЗДРАВСТВУЙТЕ УВАЖАЕМЫЕ!!
задание у меня такое - Выбираем 2 города из списка и относительно этих городов происходит выборка в SQL запросах данных.Делаю я связь с SQL базой через АДОконекш,а выборку данных через АДоКвери.
У меня такая ситуация есть несколько таблиц :
"Perevozchik",поля :nazvanie(char),edinici(char),Cena(float).
"Avtoluks_price",поля :Name(char),City1(char),City2(char),Cena(real).
"Avtoexpress_price", поля :Name(char),City1(char),City2(char),Cena(real).
Что я делаю - Выбираю города('CITY1','CITY2'),добавляю новое вычисляемое поле (PlataZaProezd ).Но мне необходимо произвесьти выборку не только из одной таблицы а из нескольких а именно из (Perevozchik,Avtoluks_price,Avtoexpress_price) при условии что (Avtoluks_price.City1=:City1,Avtoluks_price.City2=:City2,Avtoexpress_price.City1 =:City1,Avtoexpress_price.City2=:City2) и ещё чтобы в этих двух таблицах добавилось вычисляемое поле как я в первой сделал,которое расчитываеться таким же образом (cena * :distance).
Тоесть в итоге должно получиться следующее в ВЫБОРКЕ!!!3 КОЛОНКИ.
(Perevozchik.nazvanie,Perevozchik.Cena,Perevozchik.PlataZaProezd)
(Avtoluks_price.name,Avtoluks_price.Cena,Avtoluks_price.PlataZaProezd)
(Avtoexpress_price.name,Avtoexpress_price.cena,Avtoexpress_price.PlataZaProezd)
//-----------------------------------------------------------------------------------
ADOQuery1.SQL.Text := 'select p.*, cast((p.cena * :distance) as float) As PlataZaProezd from perevozchik p';//получаю выборку и вычисляемое поле
ADOQuery1.Parameters.ParamByName('distance').Value := GlobDistanse; ADOQuery1.Parameters.ParamByName('CITY1').Value := COmboBox1.Text; ADOQuery1.Parameters.ParamByName('CITY2').Value := COmboBox2.Text;
//------------------------------------------------
ЗАРАНЕЕ БЛАГОДАРЕН!!!


ketmar   (2008-02-12 13:01:00) [1]

>[2] alexsashkan (2008-02-12 09:51:00)
ага. последние слова разработчиков: «заказчик точно знает, чего хочет…»

---
Understanding is not required. Only obedience.


Sergey13   (2008-02-12 10:28:00) [2]

> [4] alexsashkan   (12.02.08 10:16)

Сделать НОРМАЛЬНУЮ структуру ОДНОЙ таблицы price. Т.е. добавь в нее поле-идентификатор перевозчика и всех делов.


alexsashkan   (2008-02-12 10:16:00) [3]

Хорошо,тогда риторический вопрос " Что делать? и как с этим быть ?"


Sergey13   (2008-02-12 10:11:00) [4]

> [2] alexsashkan   (12.02.08 09:51)

Ну и что. Грабли успешно работают даже при существующих условиях. 8-)


alexsashkan   (2008-02-12 09:51:00) [5]


> Ты не задумывался о том что будешь делать (вешаться или
> топиться) если добавится еще несколько перевозчиков?

У меня задачи не будет это ТОЧНО!!! потому как я делаю чтобы оно работало и дальнейшая модернизация не предусмотрена впринцыпе.


Sergey13   (2008-02-12 08:19:00) [6]

> [0] alexsashkan   (11.02.08 18:15)
> У меня такая ситуация есть несколько таблиц :

> "Avtoluks_price",поля :Name(char),City1(char),City2(char),Cena(real).
> "Avtoexpress_price", поля :Name(char),City1(char),City2(char),Cena(real).

Кошмарная ситуация. Ты положил себе под ноги здоровые грабли и уже успешно наступаешь на них, судя по

> Но мне необходимо произвесьти выборку не только из одной
> таблицы а из нескольких а именно из (Perevozchik,Avtoluks_price,
> Avtoexpress_price)

Ты не задумывался о том что будешь делать (вешаться или топиться) если добавится еще несколько перевозчиков?


Наверх

Титульная страница Поиск, карта сайта Написать письмо