2015-11-30 2 views
0

мне нужно, чтобы создать представление в Oracle 11g, что бы принять эти таблицы:Как создать представление оракула максимальной суммы суммы значений столбца, основываясь на значениях другого

сотрудники

FirstName | LastName | EmployeeID 
----------------------------------- 
    joe | shmo |  1 
    bob | moll |  2 

SalesData

Employee ID | commission on sale 
---------------------------------- 
    1  | $20 
    1  | $30 
    2  | $50 
    2  | $60 

, а затем подсчитывать общую commiss каждый сотрудник заработал и вернул работника, который получил наибольшую комиссию.

Таким образом, используя данные образца, вид будет содержать employee id :: 2 или bob moll.

+0

Ну, что база данных платформы это? – OldProgrammer

+0

Зачем вам это нужно? –

ответ

0

Это должно получить, что вам нужно

Создание someviewname в целях

Select EmployeeID, sum (commision) 
from employees 
left outer join salesData on salesData.EmployeeID = employees.EmployeeID 
Group by EmployeeID, commision 
order by commission desc 
0
SELECT employeeID 
FROM 
    (SELECT employeeID, 
    SUM(commission) 
    FROM sales 
    GROUP BY employeeID 
    ORDER BY SUM(commission) 
) 
WHERE rownum = 1 

Не уверен, почему вы хотите вид, но, надеюсь, вы можете понять это.

0

В Oracle 12g + можно использовать fetch:

select employeeid 
from sales 
group by employeeid 
order by sum(commission) desc 
fetch first 1 row only; 

В более ранних версиях, один метод заключается в использовании rownum:

select s.* 
from (select employeeid 
     from sales 
     group by employeeid 
     order by sum(commission) desc 
    ) s 
where rownum = 1; 
+0

, который выглядит правильно, но может ли изменить его, чтобы использовать вторую таблицу, которую я только что добавил? также я использую oracle 11g –

+0

@NedCharles. , , 'Join' не требуется, если у вас нет идентификаторов сотрудников в' sales', которые недействительны. –

Смежные вопросы