Попытка написать запрос в жабе, чтобы рассчитать комиссию за продажу

Сначала спасибо за ваше время и помощь. Я очень новичок в жабе

Я пытаюсь написать запрос, который будет рассчитывать общую комиссию на основе ставки комиссии и общего объема продаж. Я пытаюсь использовать оператор IF, чтобы установить значение 'Rate', и использовать его для кратных на основе имени продавца и общего объема продаж за месяц, которые извлекаются из базы данных. Любая помощь или направление будет очень цениться

Declare
Rate Number
;

Select 
SaName,
Sum(AMT)*Rate,
Count(Actno)

From RCVMGR.RCV_ACT_DAILY

Where (SaName = 'Mike' or SaName = 'Dave' or SaName = 'Tony') 
and ref1= 'PMT' and (SaDT between add_months (Last_day(sysdate-1),-1)+1 
and trunc(sysdate-1))

If SaName = 'Mike' Then
Rate = .15
elseif SaName = 'Dave' Then
Rate = .12
elseif SaName = 'Tony' Then
Rate = .1
End IF

Group by
SaName,
AMT,
ACTNO

1 ответ

Решение

Я думаю, что это то, что вы хотите:

select saname,
       sum(amt) * case
         when saname = 'Mike' then
          .15
         when sanme = 'Dave' then
          .12
         when saname = 'Tony' then
          .1
         else
          0
       end as commission,
       count(actno)
  from rcvmgr.rcv_act_daily
 where saname in ('Mike', 'Dave', 'Tony')
   and ref1 = 'PMT'
   and sadt between add_months(last_day(sysdate - 1), -1) + 1 and
       trunc(sysdate - 1)
 group by saname

Однако было бы лучше присоединиться к таблице, содержащей ставки комиссионных, если такая таблица существует.

Другие вопросы по тегам