powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите составить запрос
7 сообщений из 7, страница 1 из 1
помогите составить запрос
    #39973973
MoSiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База данных «Магазин» состоит из отношений:

Категории (НомерКатегории, Название)

Кассир (НомерКассы, Дата, Смена, ФИО)

Товары (ШтрихКод, ИмяТовара, Цена)

Чек (НомерЧека, Сумма, ДатаЧека, Смена, НомерКарты,Сумма)

Нужно написать sql запрос найти всех кассиров. указав их ФИО и смену, которые оформили за смену чеки на наибольшую сумму на конкретную дату. Я пправильно понимаю, что нужно составить запрос через функцию COUNT или как лучше сделать? Помогите, пожалуйста
...
Рейтинг: 0 / 0
помогите составить запрос
    #39973974
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что конкретно у вас не получается?
...
Рейтинг: 0 / 0
помогите составить запрос
    #39973976
MoSiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, я не сильно понял как все эти условия в запрос сделать
...
Рейтинг: 0 / 0
помогите составить запрос
    #39973979
MoSiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

Select Full_Name (ФИО), Сhange (смена)
From Сashier (кассир) k, Check (чек) c
Where k.number_cashbox=c.number_cashbox (номер кассы, добавляем ещё к таблице Чек, чтобы провести первичные ключи к друг другу) IN
(Select c.number_cashbox
From Check
Where Sum=
(Select MAX(Sum)
From Check))

Я сделал так, правильно ли?
...
Рейтинг: 0 / 0
помогите составить запрос
    #39974050
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoSiz
Гавриленко Сергей Алексеевич,

Select Full_Name (ФИО), Сhange (смена)
From Сashier (кассир) k, Check (чек) c
Where k.number_cashbox=c.number_cashbox (номер кассы, добавляем ещё к таблице Чек, чтобы провести первичные ключи к друг другу) IN
(Select c.number_cashbox
From Check
Where Sum=
(Select MAX(Sum)
From Check))

Я сделал так, правильно ли?


ткскыть, хм-ммм
...
Рейтинг: 0 / 0
помогите составить запрос
    #39974052
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoSiz

Я сделал так, правильно ли?


Ну, я не претендую на исключительную правильность понимания вашего задания... но там написано ЧЕКИ (множественное число).
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
-- все смены за КОНКРЕТНУЮ дату. Это для лучшего понимания.
select Смена, ДатаЧека, Сумма = sum(Сумма) from Чек where ДатаЧека = @КонкретнаяДатаЧека group by Смена, ДатаЧека;

-- опосля чего фсе тривиально. Это окончательный запрос
with s as ( select Смена, ДатаЧека, Сумма = sum(Сумма) from Чек where ДатаЧека = @КонкретнаяДатаЧека group by Смена, ДатаЧека )
   , k as ( select  * from Кассир )
  select top 1 with ties s.*, k.ФИО
    from s 
         left outer join k on k.Дата = s.ДатаЧека and k.Смена = s.Смена
    order by Сумма desc



Код: sql
1.
2.
3.
4.
5.
6.
7.
-- если же ОДИН МАКСИМАЛЬНЫЙ чек
with s as ( select Смена, ДатаЧека, Сумма = max(Сумма) from Чек where ДатаЧека = @КонкретнаяДатаЧека group by Смена, ДатаЧека
   , k as ( select  * from Кассир )
  select top 1 with ties s.*, k.ФИО
    from s 
         left outer join k on k.Дата = s.ДатаЧека and k.Смена = s.Смена
    order by Сумма desc
...
Рейтинг: 0 / 0
помогите составить запрос
    #39974116
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне кажется, что в данной постановке, при приведенных первоначальных данных задача неразрешима.

найти всех кассиров. указав их ФИО ...., которые оформили за смену чеки на наибольшую сумму на конкретную дату

поскольку отсутствует связь Чек - > Кассир
В лучшем случае можно получить только "Список кассиров в Смену, когда были чеки "

Грубо говоря, исходя из задания "на конкретную дату", вы в любом случае получите весь список Кассиров, которые работали в данную Смену, не взирая на сумму чеков
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите составить запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]