存储过程练习
2018-08-17 本文已影响0人
writing_琪
程序员工资表:ProWage
字段名称数据类型说明
IDint自动编号,主键
PNameChar(10)程序员姓名
Wageint工资
创建一个存储过程,对程序员的工资进行分析,月薪1500到10000不等,如果有百分之五十的人薪水不到2000元,给所有人加薪,每次加100,再进行分析,直到有一半以上的人大于2000元为止,存储过程执行完后,最终加了多少钱?
例如:如果有百分之五十的人薪水不到2000,给所有人加薪,每次加100元,直到有一半以上的人工资大于2000元,调用存储过程后的结果如图:
USE [wage]
GO
/****** Object: StoredProcedure [dbo].[sum_wage] Script Date: 08/17/2018 09:48:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sum_wage]
@pwage int,
@awage int,
@total int,
@total1 int
with recompile
as
while (1=1)
begin
if (select count(*) from ProWage)>2*(select count(*) from prowage where age>=@pwage)
update ProWage set @total1=@total+@AWage,age=age+@AWage
else
break
end
print'一共加薪:'+convert(varchar,@total1)+'元'
print'加薪后的程序员工资列表:'
select * from prowage