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

Итак, у меня есть 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

person Ken Wright    schedule 05.04.2015    source источник
comment
Вы можете использовать EXISTS, чтобы проверить, есть ли строка также для другого пола   -  person Sami Kuhmonen    schedule 05.04.2015
comment
Привет, Сами, Спасибо за ответ! Я тоже это проверю.   -  person Ken Wright    schedule 05.04.2015


Ответы (2)


person    schedule
comment
Спасибо, Блам. Это было намного проще и столь же эффективно! - person Ken Wright; 06.04.2015

person    schedule
comment
Это отлично работает, user3289372! Большое спасибо! - person Ken Wright; 05.04.2015
comment
Не уверен, как идеально работает первоначальный ответ, но это ваш запрос оптимизирован :) - person Daniel; 07.04.2015