存储过程练习

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

上一篇下一篇

猜你喜欢

热点阅读