eliasum
@eliasum
cd ..

Как переделать запрос из t-sql в oracle sql?

Здравствуйте!
Есть две таблицы:
5e916bf73d386788563464.jpeg

Нужно вывести список продавцов и количество их заказов, имеющих максимальное количество проданных товаров.

На t-sql реализован запрос:
select top(1) with ties s.Name
     , sum(isnull(o.Amount, 0)) as Quantity
  from Sellers as s
 inner join Orders as o
    on s.id = o.Salesperson_id
 where o.Order_date is not null and o.Order_date > '20091231'
 group by s.id, s.Name
having count(o.Salesperson_id) > 1
 order by sum(isnull(o.Amount, 0)) desc
        , row_number() over(partition by s.id order by (select null))


Подскажите, как реализовать такой же запрос в Oracle SQL Developer?

5e916da8a8bf6610134740.jpeg
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@MaximaXXl
А в чем проблемма?
select s.Name
     , sum(nvl(o.Amount, 0)) as Quantity
  from Sellers as s,
          Orders as o
 where s.id = o.Salesperson_id 
   and o.Order_date is not null 
   and o.Order_date > to_date('20091231','YYYYMMDD') /*если это date*/
 group by s.id, s.Name
having count(o.Salesperson_id) > 1
 order by sum(nvl(o.Amount, 0)) desc
offset 0 rows fetch next 1 rows only


убрал inner join т.к. на Orders as o накладывается ограничения в where
а так должно работать
Можно и это добавлять
, row_number() over(partition by s.id order by null) но это не гарантирует порядок сортировки, посему можно его опускать
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы