Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2021, 15:15   #1
da chto eto takoe
Новичок
Джуниор
 
Регистрация: 21.10.2021
Сообщений: 5
По умолчанию Нужно создать sql запрос

Есть 3 таблицы

1я таблица (contractingparties) имеет 2 столбца : Code(код), Name(название контрагента)
2я таблица (nomenclature) имеет 2 столбца: Code(код), Name(наименование товара)
3я таблица(nomenclaturesale) имеет 4 столбца: Contractor (контрагент),Nomenclature(номенклат ура) , Quantity (количество), Sum (сумма)

Само задание: Вывести контрагента купившего на большую сумму, самого непродоваемого товара. Название контрагента, название номенклатуры, сумму максимальних продаж в руб и мин количество в единицах

Получиться должна одна строка : контрагент| номенклатура| максимальная сумма| минимальная сумма количества|
da chto eto takoe вне форума Ответить с цитированием
Старый 21.10.2021, 17:08   #2
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

проверьте, может не точно...
Код:
select Contractor, Nomenclature, max(sum1) as сумма, min(sum2) as количество
from 
      (select Contractor, Nomenclature, sum(sum) over (Partition by Contractor) as sum1, 
                 sum(Quantity) over (Partition by Nomenclature) as sum2
       from nomenclature ne inner join
                contractingparties cs on ne.Code=cs.Code inner join nomenclaturesale nle
                on cs.Name=nle.Contractor)

Последний раз редактировалось rita616; 21.10.2021 в 17:25.
rita616 вне форума Ответить с цитированием
Старый 21.10.2021, 17:47   #3
da chto eto takoe
Новичок
Джуниор
 
Регистрация: 21.10.2021
Сообщений: 5
По умолчанию

rita616, спасибо, что откликнулись. К сожалению выдаёт ошибку : Every derived table must have its own alias. И ещё я заметил, что вы использовали over partition. У меня не работают оконные функции
Можете попробовать сделать без него ?

Последний раз редактировалось da chto eto takoe; 21.10.2021 в 18:03.
da chto eto takoe вне форума Ответить с цитированием
Старый 22.10.2021, 07:48   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

1. непродаваемый товар (число продаж КАЖДОГО товара)
Код:
select nomenclature, count(*) -- sum(sum) sum(quality) ?????  
from nomenclatursale
group by nomenclature
2. покупки КАЖДОГО (контрагента) по КАЖДОМУ(товару)
Код:
select ..., sum(sum)  
from nomenclaturesale
group by nomenclature, contractor
3.
Код:
select ...
from ( --число продаж товара
        .... см. п1
      ) q
inner join ( -- покупки товара
              .... см. п2
            ) t on t.nomenclature =q.nomenclature
order by q.... --минимальые продажи товара
            t....  desc -- максимальная продажа данного (предыдущий порядок) товара
limit 1 --больше нам не надо
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно написать sql запрос ( aginity workbench) Keti98 Помощь студентам 1 02.04.2018 09:27
Как создать запрос на выборку SQL ? stalkerovich2 Помощь студентам 5 03.02.2016 17:33
Создать программу через SQL-запрос willii БД в Delphi 22 08.10.2014 00:27
Создать сложный sql запрос на выборку из БД access dr.Chas Фриланс 8 26.04.2013 18:13
Помогите создать SQL запрос Rain9 SQL, базы данных 5 25.11.2008 08:54