次のストアド プロシージャを作成しました。
注文詳細 -Id(int), OrderId(int), AnniID(int), Quantity(int), UnitCost(money)
記念日 -AnniID (int), Title( varchar(50) )
AnniID は、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