以下を含むコミッション バンディング テーブルがあります。
Lower Upper Percentage
0 300 45
300.01 800 50
800.01 1500 55
下限額と上限額は通貨値であり、総売上高に関連するパーセンテージを使用して、総売上高に基づいて支払う累積額を計算する必要があります。
合計売上高が 350 の場合、コミッションは次のように計算されます。
合計の最初の 300 は 45% を使用し、残りの 50 は 50% を使用するため、私の合計は
300*45% = 135
50*50% = 25
Total = 160
私はsprocを介して金額でテーブルを更新しているので、そこにこれを収容する必要があります.
これを行う最善の方法は何ですか?
注:以下のsprocには正しい列名がありますが、上記の例では簡単にするために列の名前を変更しました。SPROC は、バンドが格納されているテーブルにも参加します。更新テーブルは、一種の作業/レポート テーブルです。
編集: sproc 更新セクション:
UPDATE CommissionCalculationDetails
SET TotalCommissionAmount =
case
when TotalSales > Upper then Upper
when TotalSale > Lower then @sales - Lower
else 0
end
* Percentage / 100
FROM CommissionCalculationDetails
LEFT JOIN CommissionBand
ON TotalSales > CommissionBand.Lower
AND TotalSales < CommisionBand.Upper