我有一個插入查詢我目前正在使用存儲過程,它應該如此。它如下:SQL RANK()計算
insert into tblAgentRank (AgtID, RankType, Rank, TimeFrame, RankValue)
select AgtID, 8, RANK() OVER (order by SUM(ColPrem*ModeValue) DESC) as Rank, 'Y', SUM(ColPrem*ModeValue)
from tblAppsInfo
where CompanyID in (select CompanyID from tblCompanyInfo
where DeptID = 7)
group by AgtID
order by Rank
這會爲每個代理創建一個總計,並將它們與他們的同行進行排名。
我需要創建一個類似的語句,做了以下計算:
- 如果PolicyTypeID = 4,計算SUM(ColPrem * ModeValue)* 0.07
- 否則,計算SUM((ColPrem * ModeValue)+(ExcessPrem * 0.07))
- 總結這兩個陳述在一起爲每個代理人,然後做總的排名。
我可以很容易地做到這一點之一,如第一個查詢所示。我的心理障礙源自需要根據PolicyTypeID根據具體情況進行。
您正在使用哪些DBMS? –
對不起,忘了提。 SQL 2005. – niclake