SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.09.2011 12:42:48

Alexandr_kulik
Участник
Зарегистрирован: 30.09.2011
Сообщений: 1

Помогите плиз

Вот есть такая постановка задачи:
  Даны две таблицы со следующими полями:

Tbl_Account (компания)               tbl_Offering (продукт)

ID                                                      ID

Name                                                 Name

                                                           AccountID(ссылка на компанию)

                                                           Price



Написать ОДИН запрос, выбирающий все компании, у которых больше 5 продуктов, и для каждой компании выбирающий 5 продуктов с наибольшей ценой (MSSQL). Результат в виде:

Компания     Продукт        Цена

SELECT Tbl_Account.name,tbl_Offering.name,tbl_Offering.Price 
FROM Tbl_Account,tbl_Offering
WHERE Tbl_Account.id=tbl_Offering.AccountID AND
      5<(SELECT count(*) FROM tbl_Offering WHERE Tbl_Account.id=tbl_Offering.AccountID) AND
      Tbl_Account.id IN( SELECT AccountID From tbl_Offering WHERE Tbl_Account.id=tbl_Offering.AccountID ORDER BY Price DESC LIMIT 5)

Ошибка в LIMIT в подзапросе, помогите.

Неактивен

 

#2 12.10.2011 07:36:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите плиз

Не знаю как в MSSQL, а в MySQL одним запросом решить вашу задачу можно только с помощью пользовательских переменных.
http://sqlinfo.ru/forum/viewtopic.php?id=1742

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson