Tabela Employees (HR).
- a) Policz wartość wynagrodzenia powiększoną o premię (commission_pct). Weź pod uwagę, że niektórzy nie mają premii (wtedy commission_pct ma wartość NULL).
- b) Policz, który pracownik ile dostaje premii (jak wyżej – bierzemy pod uwagę istnienie NULL)
- c) Do zestawienia z punktu b) dodaj obliczony staż pracy w latach (by wyniki były jednolite zakładamy, że wszyscy pracowali do 1 sierpnia 2008).
Schemat: HR, Tabela: Employees, Kolumny: First_Name, Last_Name, Salary, Commission_pct, Hire_Date, Wynik: 107 rows (a, b, c)
[spoiler title=’Rozwiązanie’ style=’default’ collapse_link=’true’]- a) SELECT first_name, last_name, salary * (1 + NVL(COMMISSION_PCT, 0)) as FullSalary
FROM Employees;
- b) SELECT first_name, last_name, salary * NVL(COMMISSION_PCT, 0) as Premia
FROM Employees;
- c) SELECT first_name, last_name, salary * NVL(COMMISSION_PCT, 0) as Premia,
TRUNC((to_date(’2008-08-01′, 'YYYY-MM-DD’) – Hire_Date) / 365, 1) as Staz_Pracy_Lata
FROM Employees
ORDER BY Premia DESC, Staz_Pracy_Lata DESC;
[/spoiler]