Как сделать запрос SQL - PullRequest
       5

Как сделать запрос SQL

0 голосов
/ 09 октября 2018

Я новичок в SQL, поэтому у меня возникли проблемы с созданием запросов.Моя задача: выбрать описание продукта, который продавался больше всего в 1989 году с максимальной скидкой. Таблица продуктов . Таблица цен .То, что я пытался сделать, это

  1. Выберите максимальную скидку, вычитая list_price - min_price

    select max(list_price - min_price) from PRICE
    
  2. Выберите описание

    select description from product 
    join price on PRODUCT.product_id = PRICE.product_id 
    where start_date = '1989'
    

Проблема в том, что я не могу сделать это за один запрос

Ответы [ 3 ]

0 голосов
/ 09 октября 2018
  • Inner Join между двумя таблицами, используя product_id, и вычислите ist_price - min_price AS discount
  • . Отфильтруйте набор результатов для переноса цен только 1989 года, используя where YEAR(start_date) = 1989
  • Рассмотрим набор результатов как Производная таблица и отсортируем его, используя значение discount в порядке убывания.Используйте Limit 1, чтобы найти продукт с максимальной скидкой, указанной в 1989 году.

Для MySQL попробуйте следующее:

SELECT dt.* 
FROM (
      SELECT 
        pt.product_id, 
        pt.description, 
        pe.list_price - pe.min_price AS discount 
      FROM PRODUCT AS pt
      JOIN PRICE AS pe ON pt.product_id = pe.product_id 
      WHERE YEAR(pe.start_date) = 1989 
     ) AS dt 
ORDER BY dt.discount DESC LIMIT 1
0 голосов
/ 09 октября 2018
select top 1
   product.product_id,
   description,
   max_disc = max(list_price - min_price) 
from PRICE 
join product on product.product_id = PRICE.product_id 
where start_date = '1989'
group by product.product_id, description
order by max_disc desc
0 голосов
/ 09 октября 2018

Вы пытаетесь, как показано ниже

   select * from 
    (
    select description from product 
    join price 
    on PRODUCT.product_id = PRICE.product_id 
    where start_date = '1989'
    ) t1
    cross join (select max(list_price - min_price) as p from PRICE) t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...