HarishRao4 Ответов: 2

Может ли кто-нибудь сказать мне, что не так с этим запросом


Мне нужно название отдела и самое высокое значение стимула, тогда как приведенный ниже запрос возвращает все отделы и все стимулы. Может кто-нибудь помочь?

Что я уже пробовал:

выберите отдел, (select ISNULL(max(INCENTIVE_AMOUNT),0)
от tbl_INCENTIVES) как max_incentive
от tbl_Employee

itsmypassion

Не могли бы вы упомянуть примерные данные

HarishRao4

Департамент Ид_сотрудника Имя_сотрудника Зарплату
1 Поддержка Хариша 15000
2 Поддержка Судхакара 25000
3 Лехана Симдок 14000
4 Кишор LMS 45000
5 Пранав Симдок 13000

HarishRao4

Employee_ID Стимул
2 5000
3 1500
4 7000
5 1100

HarishRao4

Один-это сотрудник, а другой - таблица стимулов

HarishRao4

Я могу добиться этого с помощью приведенных ниже 2 запросов, но я ищу один запрос для выполнения этой работы:

выберите department, max(incentive_amount) в качестве incentive_amount в DeptIncent
от tbl_employee
внутреннее соединение tbl_incentives на employee_id = employee_ref_id
Группа по отделам


выберите топ-1 отдел, incentive_amount из DeptIncent order by incentive_amount desc

Paw Jershauge

Вы хотите только отдел с самыми высокими стимулами ???

HarishRao4

ВЫБЕРИТЕ ВЕРХНИЙ (1)
[Отдел]
,MAX(зарплата) AS [Max_Salary]
От [tbl_Employee]
Группа по [отделу]
Заказ по максимуму([зарплата]) DESC

Paw Jershauge

ВЫБЕРИТЕ ВЕРХНИЙ (1)
[Отдел]
,MAX(зарплата) AS [Max_Salary]
От [tbl_Employee]
Группа по [отделу]
Заказ по максимуму([зарплата]) DESC

HarishRao4

Большое спасибо, но я искал отдел и поощрительную сумму

Paw Jershauge

добро пожаловать ;)
Используйте Row_number (), если вы хотите сделать столбец ранжирования. таким образом, вы могли бы иметь, скажем, топ-10 отделов с их зарплатами

,Функции row_number() над(заказ на max([зарплата]) убыванию) как [Max_Salary_Rank]

HarishRao4

Я могу достичь этого с помощью приведенных ниже 2 запросов, но то, что мне нужно, - это один запрос:

выберите department, max(incentive_amount) в качестве incentive_amount в DeptIncent
от tbl_employee
внутреннее соединение tbl_incentives на employee_id = employee_ref_id
Группа по отделам

выберите топ-1 отдел, incentive_amount из DeptIncent order by incentive_amount desc

HarishRao4

tbl_Employee
Департамент Ид_сотрудника Имя_сотрудника Зарплату
1 Поддержка Хариша 15000
2 Поддержка Судхакара 25000
3 Лехана Симдок 14000
4 Кишор LMS 45000
5 Пранав Симдок 13000

tbl_Incentives
Employee_ID Стимул
2 5000
3 1500
4 7000
5 1100

2 Ответов

Рейтинг:
1

HarishRao4

select Top 1 department, max(incentive_amount) as incentive_amount  
from tbl_employee
inner join tbl_incentives on employee_id = employee_ref_id
Group by department


Рейтинг:
1

itsmypassion

select TOP 1 department, max(incentive_amount) as incentive_amount 
from tbl_employee
inner join tbl_incentives on employee_id = employee_ref_id
Group by department
Order by  max(incentive_amount) DESC