Хранимая процедура, которая принимает два ввода КОДА ХРАНИЛИЩА и КОДА СОТРУДНИКА и отображает сообщение, если соответствующие столбцы совпадают

#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'