Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос скорее всего лёгкий ,но не для меня  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
У меня есть таблица
Пример
РесторанПосетительназвание блюдаколичество блюдцена за одно
сушиМихаилфиладельфия5100
роллыПашакалифорния330
бургерыСережавоппер220
пиццаМихаилнаггетсы410



Как с помощью запроса отобразить посетителя с самым большим количеством потраченных денег и при этом именно для этого посетителя отобразить рестораны ,названия блюд,их количество и цену.

Получится должно что-то вроде

Ресторанназвание блюдаколичество блюдцена за одноитого
сушифиладельфия5100500
пиццанаггетсы41040


Вот это полнейший бред,а как иначе вывести всю информацию?

select ресторан,название блюда,количество блюд,цена за одно,количество блюд*цена за одно
from таблица
group by посетитель,название блюда,количество блюд,цена за одно
having количество блюд*цена за одно=max(количество блюд*цена за одно)
5 ноя 16, 01:07    [19860014]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37202
select
  *
from [У меня есть таблица] a
where
  a.Посетитель in (
    select top 1
      x.Посетитель
    from [У меня есть таблица] x
    order by количество блюд*цена за одно desc
  )
5 ноя 16, 01:41    [19860022]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Гавриленко Сергей Алексеевич,
Спасибо наконец разобрался с подзапросами
5 ноя 16, 10:24    [19860202]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Только возникает еще один вопрос, если вставить данный запрос в процедуру то как вернуть имя посетителя и при этом вывести таблицу?
5 ноя 16, 12:19    [19860328]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
LazzyMind,

Out параметром?
5 ноя 16, 12:55    [19860390]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Mike_za,
С out параметром получается ,одно из двух либо я вывожу посетителя из процедуры ,либо я вывожу таблицу на экран
Вместе вывести и посетителя и таблицу не выходит
5 ноя 16, 13:44    [19860466]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
LazzyMind,

А как вы это делаете? С оут параметром
5 ноя 16, 13:53    [19860475]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Mike_za,

Select @output=посетитель
From таблица
Where..........

Если примерно то так
5 ноя 16, 15:30    [19860546]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Вышел из проблемы тем что написал set @посетитель =(наш запрос ) ,a затем идет select * ........ для вывода таблицы.
Получается скопировал практически идентичный код в set. Неудобно как-то получается
5 ноя 16, 18:30    [19860844]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
iljy
Member

Откуда:
Сообщений: 8711
LazzyMind,

CREATE PROC MyProc (@visitor int output) AS

    select top 1 @visitor = Посетитель
    from [У меня есть таблица] x
    order by количество блюд*цена за одно desc

    select  *
    from [У меня есть таблица] a  
    where a.Посетитель = @visitor
5 ноя 16, 19:42    [19860983]     Ответить | Цитировать Сообщить модератору
 Re: Запрос скорее всего лёгкий ,но не для меня  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Всем спасибо
Все понял
5 ноя 16, 20:03    [19861039]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить