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

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

Zeos и запрс из нескольких частей [D7, MySQL]


Ling ©   (2005-07-10 18:00:00) 

Читаем в доке:

"Для каждого изделия, как определить дилер(ов) с самыми высокими ценами?"

В ANSI SQL это легко делается при помощи вложенного запроса:

SELECT article, dealer, price
FROM   shop s1
WHERE  price=(SELECT MAX(s2.price)
             FROM shop s2
             WHERE s1.article = s2.article);

В MySQL такая задача выполняется в два этапа:

Следует получить список (изделие, максимальная цена)
Для каждого изделия, получить соответствующие записи, в которых цена соответствует максимальной.
Это легко делается с помощью временной таблицы:

CREATE TEMPORARY TABLE tmp (
       article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
       price   DOUBLE(16,2)             DEFAULT '0.00' NOT NULL);

LOCK TABLES shop read;

INSERT INTO tmp SELECT article, MAX(price) FROM shop GROUP BY article;

SELECT shop.article, dealer, shop.price FROM shop, tmp
WHERE shop.article=tmp.article AND shop.price=tmp.price;

UNLOCK TABLES;

DROP TABLE tmp;


Вопрос - как засунуть такой запрос в ZTable


Ling   (2005-07-10 19:26:00) [1]

уффффф всё тема закрыта...  заработало.


Ling   (2005-07-10 18:22:00) [2]

Вопрос в том, как мне сделать, чтобы результат такого запроса оказался в ZTable


Anatoly Podgoretsky   (2005-07-10 18:17:00) [3]

В ANSI SQL это легко делается при помощи одного запроса с предикатом MAX


Наверх

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