Professional Documents
Culture Documents
select id_angajat,nume,salariul,id_functie,
salariul* decode(id_functie,'SA_MAN',1.1,'SA_REP',1.05,1.01) salariu_majorat,
decode(id_functie,'SA_MAN','10%','SA_REP','5%','1%') procent
from angajati;
--ex2
select id_angajat,nume,salariul,id_functie,
case id_functie when 'SA_MAN' then 1.1
when 'SA_REP' then 1.05
else 1.1
end sal_majorat
from angajati;
select id_angajat,nume,salariul,comision,
case
when salariul>10000 then 'venituri mari'
when comision is not null then 'venituri medii'
else 'venituri mici' end clasificare_venituri
from angajati;
--ex4
select a.id_departament, d.denumire_departament, count(id_angajat),
case when count(id_angajat)>30 then 1
when count (id_angajat) between 20 and 30 then 2
when count (id_angajat) between 6 and 20 then 3
else 4 end top
from angajati a, departamente d
where a.id_departament=d.id_departament
group by a.id_departament,d.denumire_departament
order by 4;
update angajati
set salariul = salariul*decode(id_functie, 'SA_MAN',1.1,'SA_REP',1.05,1.01);
select case when extract (month from data) in (12, 1, 2) then 'iarna'
when extract(month from data) between 3 and 5 then 'primavara'
when extract(month from data) between 6 and 8 then 'vara'
else 'toamna' end anotimpuri,
sum (case when extract (month from data) in (12, 1,2) then pret*cantitate
when extract(month from data) between 3 and 5 then pret*cantitate
when extract(month from data) between 6 and 8 then pret*cantitate
else pret*cantitate end) suma_vanzari
from comenzi c, rand_comenzi r
where c.nr_comanda=r.nr_comanda
group by case when extract (month from data) in (12, 1, 2) then 'iarna'
when extract(month from data) between 3 and 5 then 'primavara'
when extract(month from data) between 6 and 8 then 'vara'
else 'toamna' end
order by 2;