函数问题:很简单,在线等待。

eureka0891 2003-04-03 10:33:54
有员工月薪情况表base_table如下:
ID:员工编号。 NAME:员工姓名。
SAL_LEVEL:工资级别。 SALARY:月薪。
ID NAME SAL_LEVEL SALARY
1201 SAM 1 1000
1202 TOM 2 1500
1203 WHITE 5 3000
1204 BLACK 4 2500
1205 TONY 3 2000
1206 JENNY 3 2200
1207 ADAM 4 2600
1208 ANCHOR 2 1800
1209 FUN 1 1100
1210 ROSE 5 3500
1211 BLUE 3 2800

1、编写一个函数,要求计算每个员工每个月应交的税金。将应交的税金写入另一表格中tax_table中,tax_table中有三个字段:编号(ID)、姓名(NAME)和税金(TAX)。假定工资在1000元以上的应交10%(如果月薪为2000元,则应交税(2000-1000)*10%=100)。
2、假定员工的工资共有五个级别(1、2、3、4、5)。升一级工资,工资应加500元;降一级工资,工资应减500元。编写一个触发器,如果工资级别发生改变,则对工资做相应的调整。

另有没有比较好的PL/SQL的书籍?或者比较经典的PL/SQL代码或论坛(最好有实例,介绍过程和函数的)?
谢谢了.
...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lastdrop 2003-04-03
  • 打赏
  • 举报
回复
1. 好像不需要函数了,除非你的税金的计算很复杂,那你就写一个根据工资算税金的函数。

insert into tax_table (id,name,tax)
( select id,name,(salary - 1000) * 0.1 from base_table );

2.
create or replace trigger base_update
before update of sal_level on base_table
for each row
begin
:new.salary := :old.salary + (:new.sal_level - :old.sal_level) * 500;
end;
/
beckhambobo 2003-04-03
  • 打赏
  • 举报
回复
过程如下:
create or procedure c_table(p_id in varchar2)
as
begin
update tax_table a (tax)=( select (salary - 1000) * 0.1 from base_table where a.id=id and id=p_id);
end;
/
函数也大同小异,只是函数要返回值.
SuperMidas 2003-04-03
  • 打赏
  • 举报
回复
建议多看书,不要为这么一个小问题,浪费你和大家的时间。
eureka0891 2003-04-03
  • 打赏
  • 举报
回复
虽说不用函数也可以做出,
不过我主要是为了学PL/SQL
来了解一下函数和过程的写法,
谢谢 Lastdrop(空杯) ( )

所以还是想用函数做出来。
(因为才看PL/SQL几天,只能看得懂语法,而这方面能够比较快上手的资料不多,
所以想看一下怎么用函数做。)
joachern 2003-04-03
  • 打赏
  • 举报
回复
up
tchatcha 2003-04-03
  • 打赏
  • 举报
回复
帮你顶顶,涨涨人气

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧