数据库三级考试多语句表值函数真题汇总
多语句表值函数
题目1
下面是一个用户定义的多语句表值函数,它接受类别作为输入参数,返回该类别下的每种商品在2012年的销售总利润,并将结果按照销售总利润的降序输出。请补全该函数定义代码。(10分)
CREATE FUNCTION f_Profit ( @lb char(10) )
RETURNS
@ProfitTable TABLE
(
商品号 char(10),
总利润 int
)
AS
BEGIN
INSERT INTO @ProfitTable
SELECT a.商品号,SUM(销售数量*(销售单价-进货单价))AS总利润
FROM 销售表 a JOIN 销售表 b ON a.商品号=b.商品号
WHERE a.商品号 IN (SELECT 商品号 FROM 商品表 WHERE 类别=@lb)
GROUP BY a.商品号
ORDER BY 总利润 DESC
RETURN
题目2
CREATE FUNCTION f_BorrowBook(@jszh char(20))
RETURNS
@xsjsTable TABLE
(
所借书籍的编号 int(20)
书籍名称 char(50)
定价 float
借书日期 datetime
)
AS
BEGIN
INSERT @xsjsTable
SELECT 借出信息表.图书编号,借出信息表.结束日期,图书明细表.图书名称,图书明细表.定价,
from 借出信息表,图书明细表
where 借出信息表.图书编号=图书明细表.图书编号 AND 借出信息表.借书正好=@jszh
RUTURN
END
题目3
CREATE FUNCTION BOOK_PROFIT(@year int)
returns
@table1 TABLE
(
书号 varchar(50)
销售总额 int
)
AS
BEGIN
INSERT INTO @table1
SELECT 销售表.书号,SUM(销售表.销售数量*图书表.单价)
FROM 图书表,销售表
WHERE 图书表.书号=销售表.书号 and year(销售表.销售时间)=@year
group by 销售表.书号
RETURN
END
题目4
CREATE FUNCTION GOODS_PROFIT(@year int)
RETURNS
@table1 TABLE
(
商品号 varchar(50),
销售总额 int
)
AS
BEGIN
INSERTE INTO @table1
SELECT a.商品号,SUM(a.销售数量*b.单价)
FROM 销售表 a JOIN 商品表 b ON a.商品号=b.商品号
WHERE year(b.销售时间)=@year
GROUP BY a.商品号
RETURN
END
//错误!!
/*
SELECT 销售表.商品号,SUM(销售数量)*单价
FROM 销售表,商品表
WHERE 销售表.商品号=商品表.商品号 AND year(销售时间)=@year
GROUP BY 销售表.商品号
RETURN
END
*/
以上就是目前为止于数据库三级考试中所有真题里出现的关多语句表值函数真题汇总。