【发布时间】:2017-07-13 11:43:28
【问题描述】:
写一个emp的程序年收入,并找到employee表的所得税。
输出应该是 first_name、salary、ann_sal 和 tax。
- i) 如果年收入 > 60000,则税为收入的 10%
- ii) 如果年收入 > 100000,则税为 800 卢比+收入的 16%
- iii) 如果年收入 > 140000 则税收为 2500 卢比+收入的 25%
样本数据
FIRST_NAME SALARY
Steven 24000
Neena 17000
Lex 17000
Alexander 9000
Bruce 6000
David 4800
Valli 4800
Diana 4200
Nancy 12008
Daniel 9000
这是我的程序:
DECLARE
CURSOR income
IS
SELECT first_name,
salary,
salary*12 ann_sal
FROM EMPLOYEES;
z income%rowtype;
ann_sal NUMBER(8,2);
tax NUMBER(8,2);
BEGIN
OPEN income;
LOOP
FETCH income
INTO z;
EXIT
WHEN income%notfound;
IF ann_sal>60000 THEN
tax :=ann_sal*10/100;
elsif ann_sal>100000 THEN
tax :=800+ann_sal*16/100;
elsif ann_sal>140000 THEN
tax :=2500+ann_sal*25/100;
ELSE
tax:='';
END IF;
dbms_output.put_line(z.first_name || ' ' || z.salary || ' ' ||z.ann_sal|| ' ' || z.tax);
END LOOP;
CLOSE income;
END;
就是这样。
【问题讨论】:
-
看起来很简单。你哪里有困难?
-
我无法在输出中显示税收列。
-
您可以发布您的查询吗?
-
而不是
z.taxindbms_output.put_line,只需使用tax作为光标的一部分。 -
但仅使用税后未显示税列@Nitish