应用题 7.  设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售单价)。其中,商品号代表一类商品,商品号、单价、销售数量和销售单价均为整型。
    请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量×(销售单价-单价)。要求商品号和年份为输入参数,总毛利用输出参数返回。
    如上所示,存储过程包括过程首部和过程体。过程名是数据库服务器合法的对象标识;参数列表:用名字来标识调用时给出的参数值,必须指定值的数据类型。参数可以是输入参数或输出参数,默认为输入参数。
【正确答案】CREATE PROCEDURE PRODUCT @商品号 int, @年份 int, @毛利 int output
   AS
   DECLARE
   @某商品销售量 int, @某商品进价 int, @某商品销售单价 int    /*中间变量定义*/
   BEGIN
   Select @某商品进价=单价 from 商品表 where @商品号=商品号
   Select @某商品销售单价=销售单价, @某商品销售量=count(*) from 销售表 where
   @商品号=商品号 and 销售时间=@年份
   IF @某商品进价 is NULL THEN    /*判断该商品是否存在*/
   ROLLBACK;
   RETURN;
   END IF
   IF @某商品销售单价 is NULL THEN    /*判断该商品是否可卖*/
   ROLLBACK;
   RETURN;
   END IF
   SET @毛利=(@某商品销售单价-@某商品进价)*@某商品销售量
   GO
【答案解析】