求助,有一道题不会做了
刚学sql数据库,这道题不知道哪出了错,找了半天,求各位大贤帮帮忙!!! 创建存储过程,要求:输入年度,计算每个业务员的年终奖金。年终奖金=年销售总额×提成率。
提成率规则如下:年销售总额5000元以下部分,提成率为10%,对于5000元及超过5000元部分,则提成率为15%。
create procedure nzj4 @nianfen char(10)
as
begin
declare @salerno char(8),@ordersum char(10),@jiangjin char(10)
declare nzj2 cursor for
select a.salerNo,sum(a.orderSum) 总销售额,YEAR(a.orderDate) 年份 --每个年度每个业务员的销售总额
from OrderMaster a,OrderMaster b
where a.salerNo=b.salerNo and convert(char(4), a.orderdate,120)=@nianfen --根据输入年份来查询
group by a.salerNo,YEAR(a.orderDate)
order by a.salerNo
open nzj2
create table #bonus( ---内存临时表,会话结束系统自动删除
salerno char(8),ordersum char(10),nianfen char(10),jiangjin char(10)
primary key(salerno) )
fetch nzj2 into @salerno ,@ordersum ,@nianfen
while (@@FETCH_STATUS=0)
begin
if @ordersum>5000
select @jiangjin=(@ordersum-5000)*0.15+5000*0.1
else select @jiangjin=@ordersum*0.1
select @salerno ,@ordersum ,@nianfen
insert into #bonus values( @salerno,@ordersum, @nianfen, @jiangjin)
fetch nzj1 into @salerno ,@ordersum ,@nianfen
end
close nzj2
deallocate nzj2
end
exec nzj4 2008
提示出错:消息 16915,级别 16,状态 1,过程 nzj4,第 9 行
名为 'nzj2' 的游标已存在。
消息 16905,级别 16,状态 1,过程 nzj4,第 16 行
游标已打开。
消息 245,级别 16,状态 1,过程 nzj4,第 26 行
在将 varchar 值 '19561.60 ' 转换成数据类型 int 时失败。
提成率规则如下:年销售总额5000元以下部分,提成率为10%,对于5000元及超过5000元部分,则提成率为15%。
create procedure nzj4 @nianfen char(10)
as
begin
declare @salerno char(8),@ordersum char(10),@jiangjin char(10)
declare nzj2 cursor for
select a.salerNo,sum(a.orderSum) 总销售额,YEAR(a.orderDate) 年份 --每个年度每个业务员的销售总额
from OrderMaster a,OrderMaster b
where a.salerNo=b.salerNo and convert(char(4), a.orderdate,120)=@nianfen --根据输入年份来查询
group by a.salerNo,YEAR(a.orderDate)
order by a.salerNo
open nzj2
create table #bonus( ---内存临时表,会话结束系统自动删除
salerno char(8),ordersum char(10),nianfen char(10),jiangjin char(10)
primary key(salerno) )
fetch nzj2 into @salerno ,@ordersum ,@nianfen
while (@@FETCH_STATUS=0)
begin
if @ordersum>5000
select @jiangjin=(@ordersum-5000)*0.15+5000*0.1
else select @jiangjin=@ordersum*0.1
select @salerno ,@ordersum ,@nianfen
insert into #bonus values( @salerno,@ordersum, @nianfen, @jiangjin)
fetch nzj1 into @salerno ,@ordersum ,@nianfen
end
close nzj2
deallocate nzj2
end
exec nzj4 2008
提示出错:消息 16915,级别 16,状态 1,过程 nzj4,第 9 行
名为 'nzj2' 的游标已存在。
消息 16905,级别 16,状态 1,过程 nzj4,第 16 行
游标已打开。
消息 245,级别 16,状态 1,过程 nzj4,第 26 行
在将 varchar 值 '19561.60 ' 转换成数据类型 int 时失败。
...全文
相关推荐
小学语文排序题做题技巧.pdf
3)小宁有一道题不会做,举手问老师。
ctf一道逆向题
近期ctf逆向题的一道简单题,新手小白,用它来学习一下手动脱壳。。
一道ctf的misc题
一道ctf的misc题
大二做的算法课设,题目已经忘了是什么了,只记得是一道acm题,用双向动
大二做的算法课设,题目已经忘了是什么了,只记得是一道acm题,用双向动态规划求解的。这里用C++解决_Algorithm-Course-Set
flash做的连线题
本主题聚焦于"Flash做的连线题",这是一个非常适合初学者上手的项目,它涉及到ActionScript 3(AS3)编程语言的应用。首先,我们要了解Flash的界面和基本操作。


