У меня есть проблема с двумя запросами:T-SQL IF ... ELSE и более чем одно значение
ALTER PROCEDURE pracownik_zamowienie (@id int)
AS
IF (SELECT EmployeeID FROM Orders WHERE EmployeeID LIKE @id) LIKE @id
BEGIN
SELECT OrderID FROM Orders
END
ELSE
BEGIN
SELECT OrderID, EmployeeID FROM Orders
END
И это одна:
ALTER PROCEDURE dwa_produkty1 (@id1 int, @id2 int) AS
IF (SELECT OrderID FROM [Order Details] WHERE ProductID LIKE @id1) LIKE (SELECT OrderID FROM [Order Details] WHERE ProductID LIKE @id2)
BEGIN
SELECT OrderID FROM [Order Details]
END
В первом я хочу получить OrderId для сотрудника который ID я набираю сам, но он не работает. Когда я печатаю идентификатор, который не находится в базе данных, запрос возвращает правильный ответ.
Во втором запросе я хочу получить ответ, который должен быть списком OrderID, который содержит два разных ProductID.
Вы можете мне помочь? Спасибо
Использование LIKE оператора с целочисленным параметром, кажется немного странным. Вероятно, вы должны вместо этого использовать EmployeeID = @id. – Cortright
, к сожалению, он тоже не работает. –
Несколько предложений: создайте отдельную SO-почту для каждого sp/вопроса ... Для SP # 1 измените имя входного параметра - мне не ясно, относится ли это идентификатор сотрудника, идентификатор заказа и т. Д. .... Также для SP # 1 у вас есть 2 возможных набора возврата, и у них нет соответствующих столбцов. Что произойдет, если ваше приложение попытается ссылаться на столбец в возвращаемом наборе, который не существует? – DMason