Показать сообщение отдельно
  #3  
Старый 19.05.2008, 10:43
Аватар для Appolon
Appolon Appolon вне форума
Новичок
 
Регистрация: 10.01.2008
Адрес: гЕйск
Сообщения: 76
Репутация: 16
По умолчанию

Можно вот так:
Код:
SELECT top 1  отели.Название, Count(заказы.отель) AS [Количество заказов]
FROM отели INNER JOIN заказы ON отели.id_отеля = заказы.отель
GROUP BY отели.Название
order by Count(Таблица2.Заказы) desc
Но этот запрос выдаст только одну запись.

Если вы используете Access, ничего умнее я не придумал кроме:
Код:
SELECT [t1].Название, [t1].[Количество заказов]
FROM (
SELECT отели.Название,  Count(заказы.отель) as [Количество заказов]
FROM отели INNER JOIN заказы ON отели.id_отеля = заказы.отель
group by отели.Название
) AS [t1]

where  [t1].[Количество заказов]=(select max( [t2].[Количество заказов])from (
SELECT отели.Название,  Count(заказы.отель) as [Количество заказов]
FROM отели INNER JOIN заказы ON отели.id_отеля = заказы.отель
group by отели.Название
) as t2)

А если используете SQL Server, тогда:
Код:
declare @t1 table ([Название] varchar (50),[Количество заказов] int)

insert into @t1
SELECT отели.Название,  Count(заказы.отель) as [Количество заказов]
FROM отели INNER JOIN заказы ON отели.id_отеля = заказы.отель
group by отели.Название

select * from @t1 as t1 where t1.[Количество заказов]=(select max(t2.[Количество заказов]) from @t1 as t2)
Выбирайте...
Ответить с цитированием