#sql #sql-server
#sql #sql-сервер
Вопрос:
у меня есть два sql-запроса.
select EmployeeID,FName from [Mydatabase].[dbo].EMPLOYEE_TABLE where EmployeeID not in
(select ManagerID from [Mydatabase].[dbo].ORG_UNIT where OrgUnitID = '5')and OrgUnitID = '5'
это возвращает две строки.
и есть еще один запрос..
(select EmployeeID,FName from [Mydatabase].[dbo].EMPLOYEE_TABLE where EmployeeID in
(select ManagerID from [Mydatabase].[dbo].ORG_UNIT where ParentTeamID = '5'))
это возвращает одну строку.
я хочу объединить результаты так, чтобы получить в конечном итоге три строки .. есть ли способ сделать это???
Ответ №1:
SELECT EmployeeID, FName
FROM EMPLOYEE_TABLE
WHERE EmployeeID NOT IN
(
SELECT ManagerID
FROM ORG_UNIT
WHERE OrgUnitID = '5'
)
AND OrgUnitID = '5'
UNION ALL
SELECT EmployeeID, FName
FROM EMPLOYEE_TABLE
WHERE EmployeeID IN
(
SELECT ManagerID
FROM ORG_UNIT
WHERE ParentTeamId = '5'
)
Если сотрудник может соответствовать обоим критериям, замените UNION ALL
на UNION
, чтобы один из них id
не возвращался дважды.
Ответ №2:
Можете ли вы выполнить их одновременно? Вы можете комбинировать запросы (с соответствующими столбцами) с помощью предложения «ОБЪЕДИНИТЬ ВСЕ«.