某书店采用了SQL Server 2008数据库管理系统,该书店有一个需求,需要统计指定年份中每一本书的销售总额,例如:查询2012年所有书的销售总额。 已知图书结构如下: 图书表(书号BOOK_ID,书名BOOK_NAME,单价BOOK_PRICE

admin2016-10-10  30

问题 某书店采用了SQL Server 2008数据库管理系统,该书店有一个需求,需要统计指定年份中每一本书的销售总额,例如:查询2012年所有书的销售总额。   
已知图书结构如下:
图书表(书号BOOK_ID,书名BOOK_NAME,单价BOOK_PRICE)
销售表(书号BOOK_ID,销售时间SALF_TIME,销售数量SALE_NUM)
假设单价和销售数量均为int型,书号和书名均为varchar(50)类型,销售时间为datetime型。请给出满足如下要求的多语句表值函数,该函数统计指定年份中每本书的销售总额。
设函数名为:BOOK_PROFIT(@year int),函数的返同结果格式如下:
书号销售总额
B001 60000
A004 50000
……

选项

答案CREATE FUNCTION BOOK_PROFIT(@year int) RETURNS@f_BOOK_PROFIT table( 书号varchar(50), 销售总额int) AS BEGIN INSERT INTO@f_BOOK_PROFIT SELECT a.书号,SUM(a.单价*b.销售数量) FROM图书表a JOIN销售表b ON a.书号=b.书号 WHERE year(b销售时间)=@year GROUP BY a书号 RETURN END 或者 CREATE FUNCTION BOOK_PROFIT(@year int) RETURNS@f_BOOK_PROFIT table( BOOK_ID varchar(50), PROFIT int) AS BEGIN INSERT INTO@f_BOOK PROFIT SELECT a.BOOK_ID,SUM(a.BOOK_PRICE*b.SALE_NUM) FROM BOOK a JOIN SALE b ON a.BOOK_ID=b.BOOK_ID WHERE year(b.SALE_TIME)=@year GROUP BY a.BOOK_ID RETURN END

解析
转载请注明原文地址:https://jikaoti.com/ti/yH37FFFM
0

最新回复(0)