Создайте переменную для хранения количества сотрудников, проработавших в компании более 3 лет
Если вы хотите установить переменную для подсчета, у вас есть две проблемы:
- Ваш подзапрос содержит более одного столбца.
- Вероятно, ваш подзапрос возвращает более одной строки.
Вы можете использовать:
SET @EmployeeLengthAfterHire = (
SELECT COUNT(*)
FROM HospitalStaff
WHERE DATEDIFF(YEAR, HireDate, GETDATE()) > 3
)
Тем не менее, ваш запрос не с расчетом более 3 лет. Он вычисляет количество границ года между двумя датами. Таким образом, 2019-12-31 и 2020-01-01 будут с разницей в «1» на этот logi c.
Я бы порекомендовал:
SET @EmployeeLengthAfterHire = (
SELECT COUNT(*)
FROM HospitalStaff
WHERE HireDate < DATEADD(YEAR, -3, HireDate)
);
Я не конечно, почему вы назвали столбец «EmployeeLengthAfterHire».