이제 막 오라클을 시작한 직장인 입니다..
제가 너무 case문만 남발해서 그런지...
원하는 결과물이 잘 안 나옵니다...
그룹함수와 단일함수를 함께 써야 할때...
어떻게 정의 내려줘야 하는지....궁금합니다..
여러조건은 맞춰야 하고...
담당자별로 그룹을 쓰려니 계속 막힙니다....
도와주세요... 제가 지금 얻으려는 결과물은....
담당자별 6월분 각 건에 대한 성과금을 구해서 전체 담당자별 성과금합계를 구해야 합니다..
select a.staf, -- 담당자
sum(a.tot_amnt), -- 6월성과금 합계
(case when a.team<>'2050' then (select case when sum(a.tot_amnt)<5000000 then floor(a.tot_amnt*0.06)
when sum(a.tot_amnt) between 5000000 and 9999999 then floor(a.tot_amnt*0.08)
when sum(a.tot_amnt) between 10000000 and 12999999 then floor(a.tot_amnt*0.1)
when sum(a.tot_amnt) between 13000000 and 15999999 then floor(a.tot_amnt*0.11)
when sum(a.tot_amnt) between 16000000 and 17999999 then floor(a.tot_amnt*0.12)
when sum(a.tot_amnt) between 18000000 and 19999999 then floor(a.tot_amnt*0.13)
when sum(a.recv_tot_amnt) between 20000000 and 21999999 then floor(a.tot_amnt*0.14)
else sum(floor(a.tot_amnt*0.15))
end
from a, b
where a.id = b.id
and a.numb = b.numb
and a.seq = b.seq
and to_char(date, 'YYYYMM') = '200706'
and b.type = '2'
and staf <> '103012'
and b.use_ysno = ' ')
when a.team='2050' and b.mbs_ysno<>'Y' then floor(a.tot_amnt*0.13)
when a.team='2050' and b.mbs_ysno='Y' then floor(a.tot_amnt*0.1)
else floor(a.tot_amnt*0.06)
end ) BB
from a, b
where a.id = b.id
and a.numb = b.numb
and a.seq = b.seq
and to_char(date, 'YYYYMM') = '200706'
and b.type = '2'
and staf <> '103012'
and b.use_ysno = ' '
group by a.staf