Итак, у меня есть SQL-запрос, который извлекает информацию о сотрудниках; название должности, пол, ставка заработной платы и т. д. У меня есть временная таблица, и в настоящее время я показываю среднюю ставку заработной платы. Большой.
Теперь мне нужно ввести название должности и сохранить среднюю ставку заработной платы, но ограничить результаты только тогда, когда в названии должности присутствуют как мужчины, так и женщины. Помощь?
Любая помощь очень ценится!
Кроме того, есть ли способ создать новый столбец, который показывает разницу в оплате труда мужчин и женщин?
If EXISTS (Select * FROM TempDB..SYSOBJECTS WHERE name = '##JTemp')
BEGIN
DROP TABLE ##JTemp
END
GO
SELECT
e.EmployeeID AS 'Employee ID',
c.FirstName + ' ' + c.LastName AS 'Employee Name',
e.Gender AS 'Employee Gender',
e.Title AS 'Job Title',
edh.DepartmentID,
d.Name AS 'Department Name',
MAX(eph.Rate) AS 'Pay Rate',
eph.PayFrequency AS 'Pay Frequency',
MAX(eph.Rate) * eph.PayFrequency AS 'Rate x Frequency'
INTO
##JTemp
FROM
HumanResources.Employee e
INNER JOIN
Person.Contact c on c.ContactID = e.EmployeeID
INNER JOIN
HumanResources.EmployeeDepartmentHistory edh on
edh.EmployeeID = e.EmployeeID
INNER JOIN
HumanResources.Department d on d.DepartmentID = edh.DepartmentID
INNER JOIN
HumanResources.EmployeePayHistory eph on eph.EmployeeID = e.EmployeeID
WHERE
edh.EndDate IS NULL
GROUP BY
e.EmployeeID, c.FirstName, c.LastName,
e.Gender, e.Title, edh.DepartmentID,
d.Name, eph.PayFrequency
SELECT
[Job Title],
[Employee Gender],
AVG([Pay Rate]) AS 'Average Pay Rate',
AVG([Rate x Frequency]) AS 'Average Rate x Frequency'
FROM
##JTemp
GROUP BY
[Job Title], [Employee Gender]
ORDER BY
[Job Title]
--WHERE [Employee Gender] = 'M'
IF EXISTS (Select * FROM TEMPDB..SYSOBJECTS WHERE name = '##JTemp')
BEGIN
DROP TABLE ##JTemp
END
GO