新手求教一个存储过程
新手求教各位高手一个存储过程:
一个工资表,三个字段:ID,Name,Price;现在要给所有人加工资,每次加100元,加到大于等于6000就不加了;同时如果半数以上的人的工资都加到6000或以上,那么所有的人都不在增加工资。
求高手给予帮助,谢谢!
[解决办法]
CREATE TABLE Table_A
(
IDVARCHAR(20),
[NAME]VARCHAR(20),
PriceNUMERIC(18,2)
)
INSERT INTO Table_A(ID,[NAME],Price)
SELECT '0001','张三',4000
union all
SELECT '0002','李四',5900
union all
SELECT '0003','王二',6000
union all
SELECT '0004','麻子',6500
union all
SELECT '0005','温某',4800
CREATE PROC PROC_A
AS
BEGIN
declare @mCountint
SELECT @mCount = COUNT(1) FROM Table_A
WHERE Price >= 6000
IF @mCount > CONVERT(numeric(18,1),(CONVERT(numeric(18,1),(SELECT COUNT(1) FROM Table_A))/2.0))
BEGIN
Return -2/*提示'半数以上的人的工资都加到6000或以上'*/
END
UPDATE Table_A
SET Price = IsNull(Price,0.00) + 100
WHERE Price < 6000
END
/*执行存储过程*/
EXEC PROC_A
ID NAME Price
-------------------- -------------------- ---------------------------------------
0001 张三 4100.00
0002 李四 6000.00
0003 王二 6000.00
0004 麻子 6500.00
0005 温某 4900.00
(5 行受影响)
[解决办法]