2014-02-26 20 views
1

首先感谢您的时间和帮助。我对蟾蜍很陌生试图在蟾蜍中写入查询来计算销售佣金

我想写一个查询,根据佣金率和总销售额计算总佣金。我试图使用IF语句来设置'Rate'的值,并根据从数据库中提取的salemans名称和月销售总额将其用于多个值。任何帮助或方向将是非常apprciated

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 
+0

某张桌子上的佣金费率是多少?如果是这样,你可能应该加入该表,而不是在case语句中指定每一个。 –

回答

0

我想这是你想要什么:

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 

但是这将是最好加入到一个表持有的佣金费率,如果这样的表存在。

+0

太棒了!工作很好。再次感谢。 – user3357820