2010-07-15 5 views
1

Я студент это мое последнее домашнее задание:)высчитывает мин и макс функции

/* ** (4,9) Расчет минимальной заработной платы для работников, освобождаемых ** и максимальной заработной платы для не освобождает сотрудники. */

я могу использовать только один оператор выбора ... или без запуска двух отдельных запросов

У меня есть 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); 

Это ссылки d с помощью первичного ключа/внешнего ключа job_title.

Любые советы ???

+1

Что вы пробовали до сих пор? попробуйте прочитать о функции «min» в sql. –

+2

Это ваше последнее задание на домашнюю работу? –

+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

Так как это домашняя работа несколько советов. Вам необходимо присоединиться к двум таблицам на job_title, чтобы найти значения min/max, вы должны использовать агрегированные функции min(Wage)max(Wage) и включить Exempt_Non_Exempt_Status в предложение where.

0

Вы можете сделать это одним запросом, используя некоторые умные трюки, но это того не стоит. Это намного проще, проще в кодировании и проще поддерживать, если вы делаете это в двух запросах.

  • Один запрос, чтобы получить минимальную зарплату за освобожденных сотрудников.
  • Второй отдельный запрос, чтобы получить максимальную зарплату для неуправляемых сотрудников.

Эти два вопроса должны быть намного проще для вас решить индивидуально.

+0

Мне нужен один способ запроса, если он у вас есть – rhonda

+0

Решение с одним запросом - это то, что задано @Andomar, но, на мой взгляд, попытка сделать слишком много в одном запросе делает запрос негибким и трудным для понимания. Когда мы делаем это в обычном коде, мы называем его * кодом спагетти *. –