数据库系统原理与设计实验教程答案 实验十二_游标和存储过程(2)

2018-12-06 18:07

end end

/*执行过程*/ exec no_tot 张三

/*(5) 创建存储过程,要求:查找姓“李”的职员的员工编号、订单编号、订单金额*/ create procedure emli_tot @emNo char(8) as select a.employeeNo 员工编号,b.orderNo 订单编号,b.orderSum 订单金额 from Employee62 a,OrderMaster62 b where a.employeeNo=b.salerNo and a.employeeName like '@emNo' /*执行过程*/

exec emli_tot '李%'

/*(6) 创建存储过程,要求:统计每个业务员的总销售业绩,显示业绩最好的前3位业务员的销售信息*/

create procedure saler_tot as select top 3 salerNo 业务员编号,sum(orderSum) 总销售业绩 from OrderMaster62 group by salerNo order by sum(orderSum) desc /*执行过程*/ exec saler_tot

/* (7) 创建存储过程,要求将大客户(销售数量位于前5名的客户)中热销的前3种商品的销售信息按如下格式输出:

=======大客户中热销的前种商品的销售信息================ 商品编号 商品名称 总销售数量 P20050003 120GB硬盘 21.00 P20050004 3.5寸软驱 18.00 P20060002 网卡 16.00*/ create procedure product_tot as declare @proNo char(10),@proNa char(20),@total int declare @text char(100) declare sale_cur scroll cursor for select top 3 a.productNo,a.productName,sum(c.quantity) from Product62 a,OrderMaster62 b,OrderDetail62 c where a.productNo=c.productNo and b.orderNo=c.orderNo and b.customerNo in(select top 5 m.customerNo from OrderMaster62 m,OrderDetail62 n where m.orderNo=n.orderNo group by m.customerNo order by sum(quantity) desc) group by a.productNo,a.productName order by sum(c.quantity) desc select @text='=======大客户中热销的前种商品的销售信息======' print @text select @text='商品编号 商品名称 总销售数量' print @text open sale_cur fetch sale_cur into @proNo,@proNa,@total while(@@fetch_status=0) begin select @text=@proNo+' '+@proNa+' '+convert(char(10),@total) print @text fetch sale_cur into @proNo,@proNa,@total end close sale_cur deallocate sale_cur /*执行过程*/ exec product_tot

/*(8) 创建存储过程,要求:输入年度,计算每个业务员的年终奖金。年终奖金=年销售总额×提成率。提成率规则如下:年销售总额元以下部分,提成率为%,对于元及超过元部分, 则提成率为%*/

create procedure pride_tot @date int as declare @saleNo char(15),@total numeric(9,2) declare @text char(100),@money numeric(8,2) declare pride_cur scroll cursor for select salerNo,sum(orderSum) from OrderMaster62 where year(orderDate)=@date group by salerNo select @text='=========业务员的年终奖金=========' print @text select @text='业务员编号 年终奖金' print @text open pride_cur fetch pride_cur into @saleNo,@total while(@@fetch_status=0) begin if(@total<5000) select @money=@total*0.1 else select @money=500+(@total-5000)*0.15 select @text=@saleNo+' '+convert(char(10),@money) print @text fetch pride_cur into @saleNo,@total end close pride_cur deallocate pride_cur /*执行过程*/

exec pride_tot 2012

/*(9) 创建存储过程,要求将OrderMaster62表中每一个订单所对应的明细数据信息按规定格式输出,格式如图-1所示。

===================订单及其明细数据信息==================== --------------------------------------------------- 订单编号 200801090001 --------------------------------------------------- 商品编号 数量 价格 P20050001 5 403.50 P20050002 3 2100.00 P20050003 2 600.00 --------------------------------------------------- 合计订单总金额 3103.50 图-1 订单及其明细数据信息*/

create procedure orderm_tot @orderno char(15) as declare @prono char(15),@quantity int,@price numeric(9,2) declare @text char(100) declare orderm_cur scroll cursor for select productNo,sum(quantity),sum(quantity*price) from OrderDetail62 where orderNo=@orderno group by productNo select @text='=============订单及其明细数据信息================' print @text select @text='-------------------------------------------------' print @text select @text='订单编号 '+@orderno print @text select @text='-------------------------------------------------' print @text select @text='商品编号 数量 价格' print @text open orderm_cur fetch orderm_cur into @prono,@quantity,@price while(@@fetch_status=0) begin select @text=@prono+' '+convert(char(5),@quantity)+' ' +convert(char(10),@price) print @text fetch orderm_cur into @prono,@quantity,@price end select @text='-------------------------------------------------' print @text close orderm_cur

deallocate orderm_cur declare @sum numeric(9,2) declare orm_cur scroll cursor for select orderSum from OrderMaster62 where orderNo=@orderno open orm_cur fetch orm_cur into @sum while(@@fetch_status=0) begin select @text='合计订单总金额'+' print @text fetch orm_cur into @sum end close orm_cur deallocate orm_cur /*执行过程*/

exec orderm_tot 200801090001

'+convert(char(12),@sum)

/*(10) 请使用游标和循环语句创建存储过程proSearchCustomer,根据客户编号查找该客户的名称、住址、总订单金额以及所有与该客户有关的商品销售信息,并按商品分组输出。输出格式如图-2所示。

===================客户订单表==================== --------------------------------------------------- 客户名称: 统一股份有限公司 客户地址: 天津市 总金额: 31121.86 --------------------------------------------------- 商品编号 总数量 平均价格 P20050001 5 80.70 P20050002 19 521.05 P20050003 5 282.00 P20070004 2 320.00 报表制作人陈辉 制作日期06 8 2012 */ create procedure proSearchCustomer (@cusno char(10)) as declare @cusname char(40),@address char(20),@total numeric(9,2)


数据库系统原理与设计实验教程答案 实验十二_游标和存储过程(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学三年级劳动与技术上册教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: