首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将tax like IRS函数转换为SQL

将tax like IRS函数转换为SQL
EN

Stack Overflow用户
提问于 2010-04-22 22:32:03
回答 2查看 247关注 0票数 0

尝试将这个类似于税务的IRS函数Calculating revenue share at different tiers转换为SQL。假设该表是一列(价格),并且层将被动态添加。

我的第一次尝试使用了一些case语句,但效果不佳。我已经废弃了它:)谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2010-04-22 23:42:22

SQL并不真正适合迭代循环。我会

代码语言:javascript
复制
select * from `brackets` where `tier` < $income

从那里我会..。那么,您自己链接到了另一种语言的一些示例代码。你真的应该这样做。

如果您坚持不这样做,SQL可以做到:

代码语言:javascript
复制
DELIMITER $$
create procedure `calcTax`(IN v_param1 int)

begin
declare v_tier int;
declare v_rate decimal(3,3);
declare v_untaxed int default 0;
declare v_taxTotal float default 0;

set v_untaxed = v_param1;
set v_taxTotal = 0;

while v_untaxed > 0 do
select max(`tier`), max(`rate`) into v_tier, v_rate
    from `brackets` where tier < v_untaxed order by `tier` desc limit 1;

set v_taxTotal = v_taxTotal + (v_untaxed - v_tier) * v_rate;
set v_untaxed = v_tier;
end while;

select v_taxTotal;
end;
$$

正确的数据类型由您决定。你需要一个能解决问题的税级表。我在下面做了一个测试(使用糟糕的数据类型)。

代码语言:javascript
复制
create table brackets (tier int primary key, rate float);
insert into brackets values (0, 0), (10000, 0.1), (50000, 0.2);
票数 1
EN

Stack Overflow用户

发布于 2010-04-22 22:40:27

您可以创建一个MYSQL用户定义函数。http://dev.mysql.com/doc/refman/5.1/en/adding-functions.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2691709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档