#sql #stored-procedures #ssms
Вопрос:
Как было сказано в вопросе, мне нужно создать хранимую процедуру в SQL, которая принимает два параметра: код магазина и код сотрудника (у меня есть сотрудник таблицы, в которой есть столбцы STORE_CODE и EMP_CODE), и мне нужно распечатать сообщение, в котором сообщается, работает ли этот сотрудник в этом конкретном магазине или нет.
Вот что у меня есть до сих пор:
CREATE OR ALTER PROCEDURE EmployeeVerify @STORE_CODE int, @EMP_CODE int
AS
DECLARE @store int
SELECT @store = STORE_CODE FROM EMPLOYEE WHERE STORE_CODE = @STORE_CODE
DECLARE @emp int
SELECT @emp = EMP_CODE FROM EMPLOYEE WHERE EMP_CODE = @EMP_CODE
IF @emp != @store
BEGIN
PRINT 'EMPLOYEE DOES NOT WORK AT THIS STORE'
END
ELSE
BEGIN
PRINT 'EMPLOYEE WORKS AT THIS STORE'
END
Я проверил это, чтобы увидеть код сотрудника 1, который должен соответствовать коду магазина 3, но в нем говорится, что сотрудник не работает в этом магазине. Не знаю, как подключить входные данные к фактическим столбцам.
Комментарии:
1. Вы не устанавливаете никакой корреляции между
store_code
иemployee
, делитесь схемой своих таблиц и образцами данных.2. @Stu Я добавил скриншот с образцами данных. У меня есть таблица СОТРУДНИК с информацией о сотруднике. Два столбца, с которыми я работаю, — это EMP_CODE, который присваивается каждому сотруднику, и это соотносится с кодом ХРАНИЛИЩА, в котором работает сотрудник. Следовательно, почему мне нужно посмотреть, совпадают ли EMP_CODE и STORE_CODE
Ответ №1:
Основываясь на вашем образце данных, похоже, что вам просто нужна простая exists
проверка
if exists (
select *
from employee
where emp_code = @emp_code and store_code = @store_code
)
print 'employee works at store'
else
print 'employee does not work at store'