я создал следующую хранимую процедуру:Хранимая процедура возвращает пустое значение
OrderDetails - Id(int), OrderId(int), AnniID(int), Quantity(int), UnitCost(money)
Anniversary - AnniID (int), Title(varchar(50))
AnniID будет ForeignKey, чтобы соединить 2 таблицы.
Когда я выполняю хранимую процедуру, он ничего не возвращает, несмотря на то, что на самом деле имеет 1 элемент в базе данных.
Есть ошибки в коде? Или я неправильно присоединился?
ALTER PROCEDURE dbo.Selectpurchasedwithproducts @AnniID INT
AS
SELECT TOP 5 OrderDetails.AnniID,
Anniversary.Title,
Sum(OrderDetails.Quantity) AS TotalNum
FROM OrderDetails
INNER JOIN Anniversary
ON OrderDetails.AnniID = Anniversary.AnniID
WHERE OrderId IN (
/* This inner query should retrieve all orders that have contained the anniID */
SELECT DISTINCT OrderId
FROM OrderDetails
WHERE AnniID = @AnniID)
AND OrderDetails.AnniID != @AnniID
GROUP BY OrderDetails.AnniID,
Anniversary.Title
ORDER BY TotalNum DESC
RETURN
Почему вы используете ** RETURN ** в конце ?? а также просто попробуйте запустить запрос, вручную передав @AnniID –
, когда я выполню код, всплывающее окно и я вручную вношу в AnniID, но ничего не возвращаю. – user1529419
Какой результат вам нужен на самом деле .. просто результаты innerjoin ..? –