特定の範囲の金額に対する税が動的である税生成モジュールがあると仮定しましょう。範囲は、次のようなテーブルに格納されます。
+---------------+---------------+-----------+
| range_from | range_to | rate |
+---------------+---------------+-----------+
| 0 1000 25 |
| 1001 5000 30 |
| 5001 8000 40 |
| 8000 - 50 |
+-------------------------------------------+
この範囲テーブルには、任意の数の行を含めることができます。
では、MySQL の関数を使用して上記の表からどのように税額を達成できますか?
20000 を指定すると、次のように計算されます。
1000 * 0.25 + 4000 * 0.30 + 3000 * 0.40 + 12000 * 0.50
使ってみましたが、
set @remaining_amount = @provided_amount;
for x in (select * from range_table)
loop
if(@provided_amount > x.range_to)
set @tax_amt+=(x.range_to-x.range_from)* x.rate/100;
set @remaining_amt-= x.range_to-x.range_from;
end if;
if(@provided_amount > x.range_from and x.range_to = '-')
set @tax_amt+=(@remaining_amount)* x.rate/100;
end if;
end loop;
しかし、MySQL で動作する「for ループ」が見つかりませんでした。
提案/ヘルプはありますか?