计算最小和最大函数

时间:2010-07-15 18:52:09

标签: sql sql-server

我是学生这是我最后的家庭作业:)

/ * **(4.9)计算豁免雇员的最低工资 **和非豁免员工的最高工资。 * /

我只能使用一个select语句......或者不运行两个单独的查询

我有2张桌子...... JOB_TITLE

(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_title主键/外键链接。

任何建议???

3 个答案:

答案 0 :(得分:2)

计算豁免雇员的最低工资和非豁免雇员的最高工资:

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

答案 1 :(得分:1)

因为它的功课有一些提示。 您需要按job_title加入这两个表,以查找应使用聚合函数min(Wage) max(Wage)的最小值/最大值,并在where子句中包含Exempt_Non_Exempt_Status。 / p>

答案 2 :(得分:0)

您可以使用一些聪明的技巧在一个查询中执行此操作,但这不值得。如果您在两个查询中执行此操作,则更简单,更容易编码并且更易于维护。

  • 获得豁免员工最低工资的一项查询。
  • 第二个单独的查询,以获取非豁免员工的最高工资。

这两个查询应该更容易让您单独解决。