博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL-58 获取有奖金的员工相关信息。
阅读量:6801 次
发布时间:2019-06-26

本文共 1361 字,大约阅读时间需要 4 分钟。

题目描述

获取有奖金的员工相关信息。
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 `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
create table emp_bonus(
emp_no int not null,
recevied datetime not null,
btype smallint not null);
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、first_name、last_name、奖金类型btype、对应的当前薪水情况salary以及奖金金额bonus。 bonus类型btype为1其奖金为薪水salary的10%,btype为2其奖金为薪水的20%,其他类型均为薪水的30%。 当前薪水表示to_date='9999-01-01'
输出格式:
emp_no first_name last_name btype salary bonus
10001 Georgi Facello 1 88958 8895.8
10002 Bezalel Simmel 2 72527 14505.4
10003 Parto Bamford 3 43311 12993.3
10004 Chirstian Koblick 1 74057 7405.7
SQL:
select e.emp_no,e.first_name,e.last_name,b.btype,s.salary,(case b.btypewhen 1 then s.salary*0.1when 2 then s.salary*0.2else  s.salary*0.3 end)as bonusfrom employees e,emp_bonus b,salaries son e.emp_no=b.emp_noand e.emp_no=s.emp_noand s.to_date='9999-01-01'

  

转载于:https://www.cnblogs.com/kexiblog/p/10755909.html

你可能感兴趣的文章
【git】git pull
查看>>
Hive分析窗体函数之SUM,AVG,MIN和MAX
查看>>
调整 Windows VM 的大小
查看>>
Flask基础
查看>>
微信小程序性能优化之一
查看>>
Service工作过程
查看>>
linq to xml 初学 -- 查询语法
查看>>
NUnit Console Command Line
查看>>
读写分离主从复制集群分库分表的总体理解
查看>>
编译器指示语句
查看>>
PLSQL中显示Cursor、隐示Cursor、动态Ref Cursor差别
查看>>
《算法导论》读书笔记(三)
查看>>
react-redux
查看>>
Java NIO(一)I/O模型概述
查看>>
【转】对博士学位说永别
查看>>
SQL Server等待事件—RESOURCE_SEMAPHORE_QUERY_COMPILE
查看>>
权限模型
查看>>
windowns 2008(apache2.2.25 x86 openssl0.98y) 升级openssl1.0.1e(为了支持小程序接口TLS1.2)
查看>>
在.NET下如何预防XXE注入攻击
查看>>
HTC T8878刷机手册
查看>>