1、查詢員工編號emp_now為10001其自入職以來的薪水salary漲幅值growth
create table `salaries` (
`emp_no` int(11) not null,
`salary` int(11) not null,
`from_date` date not null,
`to_date` date not null,
primary key (`emp_no`,`from_date`));
解題思路:巧妙使用max和min。
select (max(salary)-min(salary)) as groeth from salaries
where emp_no='10001'
2、查詢所有員工自入職以來的薪水漲幅情況,給出員工編號emp_no以及其對應的薪水漲幅growth,並按照growth進行公升序
create table `employees` (
`emp_no` int(11) not null,
`birth_date` date not null,
`first_name` varchar(14) not null,
`last_name` varchar(16) not null,
`gender` char(1) not null,
`hire_date` date not null,
primary key (`emp_no`));
create table `salaries` (
`emp_no` int(11) not null,
`salary` int(11) not null,
`from_date` date not null,
`to_date` date not null,
primary key (`emp_no`,`from_date`));
解題思路:
先用內連線構造兩張當前薪水和入職薪水表,然後再內連線這兩張表,篩選出emp_no和growth
select currentsalary.emp_no,(currentsalary.salary-beginsalary.salary) as growth
from (select e.emp_no,s.salary
from employees as e inner join salaries as s
on e.emp_no=s.emp_no where s.to_date=
'9999-01-01'
) as currentsalary
inner join(select e.emp_no,s.salary
from employees as e inner join salaries as s
on e.emp_no=s.emp_no where s.from_date=e.hire_date) as beginsalary
on currentsalary.emp_no=beginsalary.emp_no
order by growth
Oracle經典題庫大全 必看
查詢工資大於12000的員工姓名和工資 select first name last name,salary from employees where salary 12000 2.查詢員工號為176的員工的姓名和部門號 select first name last name department ...
sql經典語句
說明 複製表 只複製結構,源表名 a 新錶名 b access可用 方法一 select into b from a where 1 1 方法二 select top 0 into b from a 注意 複製的新錶中的所有欄位都將沒有預設值,即使源表中有設預設值 說明 一條sql 語句搞定資料庫分...
經典sql語句
經典sql語句大全 update 有關update,急!在oracle資料庫中 表 a id firstname,lastname 表 b id,lastname 表 a 中原來id,firstname兩個欄位的資料是完整的 表 b中原來id,lastname兩個欄位的資料是完整的 現在要把表 b中...