Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
помогите составить sql запрос (2) (Raphael) 06/05/2004 - 02:15:39
      Re: поточнее (Sam) 06/05/2004 - 14:39:45
      Re: поточнее (Raphael) 06/05/2004 - 15:09:58
      Re: поточнее (Raphael) 06/05/2004 - 15:10:11
      Re: sql запрос с использованием вложеных! (Raphael) 07/05/2004 - 00:26:32
      Re: так? (Sam) 07/05/2004 - 02:01:32
      Re: Сумма контракта (Sam) 07/05/2004 - 02:05:18
      Re: не так (Raphael) 07/05/2004 - 14:02:17
      Re: наверное так (Sam) 07/05/2004 - 22:12:31
      Re: подзапросы не работают (Raphael) 08/05/2004 - 02:14:08
      Re: так? (Kroha) 27/05/2005 - 13:14:34

> Original message text:
> From: Raphael - 06/05/2004 - 02:15:39
> Subject: помогите составить sql запрос (2)
> -----------------
> Здравствуйте, помогите составить sql запрос
> есть 2 таблицы
> 1 - список контрактов,
> contracts
> contract_id
> 2 - список предложений по покупке/продаже этих контрактов
> proposals
> proposal_price
> proposal_quantity
> proposal_contract_id
>
> требуется выбрать все контракты, с максимальной ценой покупки и
> продажи и количеством акций.
>
> я пока скачиваю все таблицы в php и вручную обрабатываю массивы
> первый запрос
>
> SELECT * , sum( IF (proposal_quantity <0, -proposal_quantity, 0) ) AS n_ask,
> sum( IF (proposal_quantity >0, proposal_quantity, 0) ) AS n_bid
> FROM `proposals`
> GROUP BY `proposal_price`
>
> теперь в получившився результате надо бы взять максимум proposal_price и сгрупировать по proposal_contract_id
>
> и последнее
> SELECT * FROM `contracts`
> LEFT JOIN (тот результат который получился после суммирования и взятия максимума) ON (proposal_contract_id = contract_id)
>
> ну хоть как нибудь и гденибудь переложить часть работы на базу, а то я всё делаю в скрипте и боюсь в будущем перестану укладыватся в ограничения.
>


From: Sam - 07/05/2004 - 22:12:31
Subject:наверное так
-----------------
SELECT p1.id, p1.price, sum(p1.qua)
FROM prop p1
WHERE
price IN (
SELECT max(p2.price)
FROM prop p2
WHERE p2.id = p1.id
)
GROUP BY p1.id, p1.price

Только я не уверен что такая конструкция сработает.

А, погоди
SELECT id, price, sum(qua)
FROM prop
GROUP BY id, price
HAVING price =

:( Не удалось.
Еще раз!
Выбрать максимумы цены для каждой акции
SELECT id, max(price) AS mp FROM prop
Перемножить на саму себя
SELECT p1.id, p2.mp, sum(p1.qua)
FROM prop AS p1
INNER JOIN
(SELECT id, max(price) AS mp FROM prop) AS p2
ON (p1.id = p2.id AND p1.price = p2.price)
GROUP BY p1.id, p2.mp

Интересно, хоть какой нибудь сервер это сможет исполнить???


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
22227



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |