sql - 使用PL/SQL函数获取员工薪酬记录

标签 sql database oracle plsql

我是 stackoverflow 的新手,也是 PL/SQL 的新手。我正在研究一些 PL/SQL 问题并试图解决这个问题。

基本上,我想创建一个名为 GET_ANNUAL_INCOME 的 PL/SQL 函数来返回指定员工的年薪,根据以下公式根据员工的月薪和佣金计算得出:

  annual_ income = salary*12 +(commission_pct*salary*12)

GET_ANNUAL_COMPN 函数应该接受一个参数——员工 ID 并使用适当的查询 er.employees tbl 来计算该员工的年收入。我想在select语句中使用上面的公式来获取年薪

我已经创建了这个函数 -(这是正确的吗?)

CREATE FUNCTION GET_ANNUAL_INCOME (iEmpId IN INT) 
RETURN FLOAT 
IS annual_income FLOAT;

BEGIN  

SELECT salary *12 +(commission_pct*salary*12) 
INTO annual_income
FROM Employee 
WHERE EmpId = iEmpId;
RETURN(annual_income);

END;

问题的第二部分是我想弄清楚的。有没有人可以帮助我或指导我。

最佳答案

看起来不错。

您现在可以查询特定的 empid

select GET_ANNUAL_INCOME(3) from dual;

或一组empid

select GET_ANNUAL_INCOME(empid) from employee;

关于sql - 使用PL/SQL函数获取员工薪酬记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40643566/

相关文章:

sql-server - 有什么方法可以取消删除 SQL Server 数据库和存储过程吗?

java - 为什么我的 SQLite 数据库查询返回 null?

sql - 在 Oracle 存储过程中记录错误消息

java - java连接数据库的驱动

sql - 在不引用双表的情况下在 Oracle 中从无选择?

sql - Oracle SQL 中的 For 循环

sql-server - 如何在 SQL Server 中创建一个新的数据库和其中的表?

SQL azure : An error occurred while executing GlobalQuery operation: Large object column support is limited to only nvarchar(max) data type

mysql SELECT 单个表中每个类别的最佳选择

java - Hibernate:通过单个连接表引用多个表