应用题 7.  设在SQL Server 2008某数据库中,有图书表(书号,书名,单价)和销售表(书号,销售时间,销售数量),假设单价和销售数量均为int类型,书号和书名均为varchar(50)类型,销售时间为datetime类型。请给出创建满足如下要求的多语句表值函数,该函数统计指定年份中每本书的销售总额。设函数名为:f_BookProfit(@year int),函数的返回结果格式如下:
    书号    销售总额
    B001    60000
【正确答案】    1)  CREATE FUNCTION f_BookProfit(@year int)
   2)  RETURNS @f_BookProfit table(
   3)  书号varchar(50),
   4)  销售总额int)
   5)  AS
   6)  BEGIN
   7)  INSERT INTO @f_BookProfit
   8)  SELECT a.书号,SUM(单价*销售数量)
   9)  FROM图书表a JOIN销售表b ON a.书号=b.书号
   10)  WHERE year(销售时间)=@year
   11)  GROUP BY a.书号
   12)  RETURN
   13)  END
【答案解析】 注:①代码大小写均对;
   ②代码中第2)、7)行的变量名@f_BookProfit写其他名也对;
   ③代码中第10)行的year(销售时间)写成:datepart(year,销售时间)也对。