0

我在使用特定月份和年份作为输入边界创建存储过程时遇到问题。

我需要创建一个存储过程,称为sp_products列出在指定月份和年份订购的指定产品。产品名称、月份和年份将是存储过程的输入参数。显示表格中的产品名称、单价和库存单位,以及Products表格中的供应商名称Suppliers。使用以下查询来测试您的存储过程以生成下面列出的结果集。

EXEC sp_products '%tofu%', 'December', 1992

ProductName UnitPrice UnitsInStock Name
------------------------------ -------------- --------------- -----------------------------------

这是我编写的成功执行的查询的代码。

但是当我运行

EXEC sp_products '%tofu%', 'December', 1992 

我收到错误消息。

CREATE PROCEDURE sp_products
   (@product VARCHAR(40),
@month DATETIME = 'December',
@year DATETIME = 1992
   ) 
AS
   SELECT             
      P.ProductName, P.UnitPrice, P.UnitsInStock,
      S.Name
   FROM 
      Products P
   INNER JOIN 
      Suppliers S ON P.SupplierID = S.SupplierID 
   WHERE 
      P.SupplierID = @product 

需要帮忙.....!!!!

4

1 回答 1

0

您可以在存储过程上连接模式,

CREATE PROCEDURE sp_products
(         
    @product VARCHAR(40),
    @month DATETIME,
    @year DATETIME
)
AS
SELECT  P.ProductName,
        P.UnitPrice,
        P.UnitsInStock,
        S.Name
FROM    Products P
        INNER JOIN Suppliers S 
            ON P.SupplierID = S.SupplierID 
WHERE   P.SupplierID = '%' + @product + '%'

GO

执行过程,

EXEC sp_products 'tofu', 'December', 1992

追问:@month@year参数有什么用?

于 2013-03-20T05:21:15.923 回答