I jeszcze jedno pytanko
Majac takie zapytanie
select e.emp_lname pracownik,
sum(case
when pm.prm_end_date is null then to_number(round(sysdate-pm.prm_begin_date))+1
else to_number(round(pm.prm_end_date-pm.prm_begin_date))+1
end) dni,
round(sum(case
when pm.prm_end_date is null then to_number(round(sysdate-pm.prm_begin_date))+1
else to_number(round(pm.prm_end_date-pm.prm_begin_date))+1
end)/30) miesiace,
sum(case
when pm.prm_end_date is null then to_number(round(sysdate-pm.prm_begin_date))+1
else to_number(round(pm.prm_end_date-pm.prm_begin_date))+1
end)1350 przychod,
sum(case
when pm.prm_end_date is null then to_number(round(sysdate-pm.prm_begin_date))+1
else to_number(round(pm.prm_end_date-pm.prm_begin_date))+1
end1350-e.emp_salary) praca
from pro_mem pm inner join employee e on e.emp_id= pm.prm_emp_id
GROUP by rollup(e.emp_lname, pm.prm_pro_id)
having prm_pro_id is null
order by 1;
moge zrobic aby to wyrażenie było jakąś zmienną i nie trzeba było pytać o to tyle razy
sum(case
when pm.prm_end_date is null then to_number(round(sysdate-pm.prm_begin_date))+1
else to_number(round(pm.prm_end_date-pm.prm_begin_date))+1
end*1350
żeby było
select e.emp_lname pracownik,
var dni, round(var/30) miesiace, var*1350 przychod, var-e.emp_salary zarobek
from pro_mem pm inner join employee e on e.emp_id= pm.prm_emp_id
GROUP by rollup(e.emp_lname, pm.prm_pro_id)
having prm_pro_id is null
order by 1;