Sql 计算最小和最大函数
我是一名学生这是我最后的家庭作业:) /* **(4.9)计算免税员工的最低工资 **以及非免税雇员的最高工资。 */ 我只能使用一个select语句。。。或者不运行两个单独的查询 我有两张桌子。。。 职位Sql 计算最小和最大函数,sql,sql-server,Sql,Sql Server,我是一名学生这是我最后的家庭作业:) /* **(4.9)计算免税员工的最低工资 **以及非免税雇员的最高工资。 */ 我只能使用一个select语句。。。或者不运行两个单独的查询 我有两张桌子。。。 职位 (Job_title varchar (50) PRIMARY KEY, EEO_1_Classification varchar(200), Job_description varchar(250), Exempt_Non_Exempt_Status bit ); 及 雇员 (Emp_i
(Job_title varchar (50) PRIMARY KEY,
EEO_1_Classification varchar(200),
Job_description varchar(250),
Exempt_Non_Exempt_Status bit );
及
雇员
(Emp_id int NOT NULL IDENTITY(1,1)PRIMARY KEY,
Last_name varchar(25),
First_name varchar(25),
Address varchar(40),
City varchar (15),
State char(2),
Telephone_area_code varchar(3),
Telephone_number varchar(8),
Job_title varchar(50) foreign key references job_title(job_title),
Hire_date smalldatetime,
Wage money,
Gender char(1),
Race varchar(25),
Age int );
它们由作业标题主键/外键链接
有什么建议吗?因为这只是一些提示。
您需要通过
job\u title
连接这两个表,要找到最小/最大值,您应该使用聚合函数min(Wage)
max(Wage)
,并在where子句中包含emption\u Non\u emption\u Status
。您可以使用一些巧妙的技巧在一个查询中完成这一操作,但这并不值得。如果您在两个查询中执行,那么它将更简单、更易于编码和维护
- 一个查询,用于获取免税员工的最低工资
- 第二个单独的查询,用于获取非免税员工的最高工资
这两个查询应该更容易单独解决。计算免税员工的最低工资和非免税员工的最高工资:
select min(case when j.Exempt_Non_Exempt_Status = 1 then e.Wage end)
, max(case when j.Exempt_Non_Exempt_Status = 0 then e.Wage end)
from Employee e
join Job_title j
on j.Job_title = e.Job_title
到目前为止你试过什么?试着阅读一下sql中的“min”函数。这是你最后一个家庭作业?如果你有,我需要一种查询方式一种查询解决方案是@Andomar给出的,但我坚持我的观点,试图在一个查询中做太多的事情会使查询变得不灵活和难以理解。当我们在传统代码中这样做时,我们称之为意大利面代码。