powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос Join на 2 таблицы
7 сообщений из 7, страница 1 из 1
Запрос Join на 2 таблицы
    #39945898
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Помогите решить задание:
Есть две таблицы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
CREATE TABLE Sellers( 
  id INT PRIMARY KEY NOT NULL,
    Name VARCHAR(20) NULL,  
    Age INT NULL,
  Salary INT NULL,                          
)
 
INSERT dbo.Sellers (id, Name, Age, Salary)  
VALUES (1, 'Sara', 61, 3000),
     (2, 'Billy', 20, 4500),    
     (3, 'Dan', 23, 2400),
     (4, 'Joe', 35, 7800)   
 
CREATE TABLE Orders( 
  NUMBER INT NULL,
    Order_date DATE NULL,  
    Salesperson_id INT NOT NULL,
  Amount INT NULL,                          
)
 
INSERT dbo.Orders (NUMBER, Order_date, Salesperson_id, Amount)  
VALUES (10, '2006-08-02', 2, 540),
     (20, '2019-01-03', 2, 1800),   
     (30, '2015-07-14', 1, 640),
     (40, '2018-01-29', 2, 2400),   
     (50, '2018-02-03', 3, 600),
     (60, '2009-03-02', 4, 720),    
     (70, '2008-05-06', 2, 150),
     (80, '2019-01-02', 2, 101),    
     (90, '2018-06-07', 3, 40)



Нужно вывести имена всех продавцов, у которых больше 1 заказа, начиная с2010 года.
Вывести список продавцов и количество их заказов, имеющих максимальное количество проданных товаров.
...
Рейтинг: 0 / 0
Запрос Join на 2 таблицы
    #39945963
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНужно вывести имена всех продавцов, у которых больше 1 заказа, начиная с2010 года.

как-то так
Код: sql
1.
2.
3.
4.
5.
6.
SELECT S.ID,S.NAME
FROM dbo.Sellers AS S
JOIN dbo.Orders AS ORD ON S.id=ORD.Salesperson_id
WHERE ORD.Order_date IS NOT NULL AND ORD.Order_date>'20091231'
GROUP BY S.id,S.Name
HAVING COUNT(ORD.Salesperson_id)>1;
...
Рейтинг: 0 / 0
Запрос Join на 2 таблицы
    #39945980
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eliasum
Вывести список продавцов и количество их заказов, имеющих максимальное количество проданных товаров.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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))
...
Рейтинг: 0 / 0
Запрос Join на 2 таблицы
    #39946125
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, а как такой запрос выполнить в Oracle SQL Developer?

nullin
eliasum
Вывести список продавцов и количество их заказов, имеющих максимальное количество проданных товаров.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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))

...
Рейтинг: 0 / 0
Запрос Join на 2 таблицы
    #39946131
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eliasum
Подскажите, а как такой запрос выполнить в Oracle SQL Developer?
Никак. Это форум по MS SQL Server.
Подсказать, как модифицировать запрос для Oracle могут в соседнем форуме, по Oracle.
...
Рейтинг: 0 / 0
Запрос Join на 2 таблицы
    #39946275
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eliasum,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select a.name
  from (select s.id, s.name, 
               rank() over(order by sum(nvl(o.Amount, 0)) desc) rn
          from Sellers s
         inner join Orders o
            on s.id = o.Salesperson_id
         where o.Order_date is not null and o.Order_date > to_date('2009-12-31', 'YYYY-MM-DD')
         group by s.id, s.Name
        having count(o.Salesperson_id) > 1) a
 where a.rn = 1
...
Рейтинг: 0 / 0
Запрос Join на 2 таблицы
    #39946307
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!!!

nullin
eliasum,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select a.name
  from (select s.id, s.name, 
               rank() over(order by sum(nvl(o.Amount, 0)) desc) rn
          from Sellers s
         inner join Orders o
            on s.id = o.Salesperson_id
         where o.Order_date is not null and o.Order_date > to_date('2009-12-31', 'YYYY-MM-DD')
         group by s.id, s.Name
        having count(o.Salesperson_id) > 1) a
 where a.rn = 1

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


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