Как мне структурировать этот запрос SQL SELECT? - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть две таблицы, и мне нужно сделать определенный выбор.

Первая таблица - Сотрудник , в которой есть столбцы Имя * Departament_ID * и Зарплата Вторая таблица: Отдел со столбцами ID отдела и * Departament_Name *

Мой сценарий SQL должен получить мне имя отдела, максимальная зарплата и минимальная зарплата , где Departament_ID равен '30'

Ответы [ 4 ]

0 голосов
/ 13 марта 2012
   SELECT d.Department_Name AS name,
      MAX(e.salary) AS max_salary,
      MIN(e.salary) AS min_salary
   FROM Department d
   Inner JOIN Employee ON d.Department_ID = e.Department_ID
   WHERE d.Department_ID = 30
0 голосов
/ 08 февраля 2012
SELECT d.department_name,
       MIN(e.salary) AS 'Minimum Salary',
       MAX(e.salary) AS 'Maximum Salary'
FROM department d,employee e
WHERE d.department_id=30 AND d.department_id=e.department_id
GROUP BY d.department_name
0 голосов
/ 08 февраля 2012
Функция
SELECT  max(sal) as MaximumSalary
       ,min(sal)  as MinimumSalary
       ,department.Departament_Name
       ,employee.Name
FROM    employee
INNER JOIN department ON
            employee.departmentid = department.department_id
WHERE department.department_id = 31
GROUP BY department.department_id

max и min предоставит вам максимальное и минимальное значение таблицы сотрудника для столбца зарплаты.Это потребует от вас использования GROUP BY, поскольку они должны рассчитать максимум и минимум из группы данных, в данном случае это максимум / минимум по отделам.Мы группируем по идентификатору отдела, потому что это уникальный ключ таблицы.Внутреннее соединение здесь, чтобы объединить две таблицы, которые у вас есть.Это внутреннее объединение, потому что мы хотим включить в запрос отдел.

0 голосов
/ 08 февраля 2012

Что-то вроде этого должно сработать (примечание: все написанные в точности такие же, как вы дали в своем первом посте).

   SELECT d.Department_Name AS name,
          MAX(e.salary) AS max_salary,
          MIN(e.salary) AS min_salary
     FROM Department d
LEFT JOIN Employe e ON d.Department_ID = e.Department_ID
    WHERE d.Department_ID = 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...