超过经理收入的员工

Employee 表包含所有员工,包括他们的经理。每个员工都有一个 Id,此外还有一列对应的经理 Id。

+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+

在 Employee 表中,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工。在上面的表格中,Joe 是唯一一个收入超过他经理的员工。

+----------+
| Employee |
+----------+
| Joe      |
+----------+

您是否在真实的面试环节中遇到过这道题目呢?
解答如下:
select e.Name as Employee from employee e,employee m where e.managerid=m.id and e.salary>m.salary
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个案例可以使用面向对象的思想来实现,可以定义一个 `Employee` 员工类和一个 `Manager` 经理类,其中 `Employee` 类中包含了员工的基本信息和工资计算方法,`Manager` 类则继承了 `Employee` 类,并添加了管理津贴的计算方法。 以下是一个简单的示例代码: ```c++ #include <iostream> #include <string> using namespace std; class Employee { protected: string name; // 员工姓名 int salary; // 员工薪水 public: Employee(const string& name, int salary) : name(name), salary(salary) {} virtual int getSalary() const { return salary; } // 计算员工薪水 virtual void printInfo() const { // 输出员工信息 cout << "Name: " << name << endl; cout << "Salary: " << salary << endl; } }; class Manager : public Employee { private: int bonus; // 管理津贴 public: Manager(const string& name, int salary, int bonus) : Employee(name, salary), bonus(bonus) {} int getSalary() const override { return salary + bonus; } // 计算经理薪水 void printInfo() const override { // 输出经理信息 cout << "Name: " << name << endl; cout << "Salary: " << getSalary() << endl; cout << "Bonus: " << bonus << endl; } }; int main() { Employee employee("Alice", 5000); Manager manager("Bob", 8000, 2000); employee.printInfo(); manager.printInfo(); return 0; } ``` 在上面的代码中,`Employee` 和 `Manager` 类分别代表了员工经理,其中 `Employee` 类中包含了员工的基本信息和工资计算方法,`Manager` 类则继承了 `Employee` 类,并添加了管理津贴的计算方法。在 `main` 函数中,我们创建了一个 `Employee` 类型的对象 `employee` 和一个 `Manager` 类型的对象 `manager`,并分别调用它们的 `printInfo` 方法,输出它们的信息和薪水。 注意,在上面的代码中,`Employee` 类中的 `getSalary` 方法和 `Manager` 类中的 `getSalary` 方法都被声明为 `virtual`,这是为了实现多态。这样,当我们通过基类指针或引用调用这些方法时,会根据对象的实际类型来调用对应的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值