建立存储过程 ygyj(in nf int,in yf int,in xm varchar(10) out pj varchar(10)) 输入年份nf和月份yf和姓名xm ,输出对该工作人员的评价pj。 若该员工在指定年份和月份的销售业绩(销售单xsd的实际付款sjfk的合计)大于等于10000元,则返回优秀,大于等于5000元,则返回达标,大于0小于5000元返回不达标,若没有销售单则返回无业绩。 调用过程 以2015、7和王雅静为参数,调用ygyj过程,将结果存入@yj1 以2015、6和廖秉娴为参数,调用ygyj过程,将结果存入@yj2 以2015、7和赵敏为参数,调用ygyj过程,将结果存入@yj3 以2015、7和章伟为参数,调用ygyj过程,将结果存入@yj4
时间: 2024-02-13 07:00:27 浏览: 86
好的,您的问题是如何建立存储过程 ygyj。以下是建立存储过程 ygyj 的 SQL 代码:
```
CREATE PROCEDURE ygyj
@nf INT,
@yf INT,
@xm VARCHAR(10),
@pj VARCHAR(10) OUTPUT
AS
BEGIN
DECLARE @total_money DECIMAL(10, 2)
SELECT @total_money = SUM(sjfk)
FROM xsd
WHERE YEAR(rq) = @nf AND MONTH(rq) = @yf AND xm = @xm
IF @total_money IS NULL
SET @pj = '无业绩'
ELSE IF @total_money >= 10000
SET @pj = '优秀'
ELSE IF @total_money >= 5000
SET @pj = '达标'
ELSE
SET @pj = '不达标'
END
```
接下来是调用存储过程 ygyj 的 SQL 代码:
```
DECLARE @yj1 VARCHAR(10), @yj2 VARCHAR(10), @yj3 VARCHAR(10), @yj4 VARCHAR(10)
EXEC ygyj 2015, 7, '王雅静', @yj1 OUTPUT
EXEC ygyj 2015, 6, '廖秉娴', @yj2 OUTPUT
EXEC ygyj 2015, 7, '赵敏', @yj3 OUTPUT
EXEC ygyj 2015, 7, '章伟', @yj4 OUTPUT
```
其中,@yj1、@yj2、@yj3、@yj4 分别存储了王雅静、廖秉娴、赵敏、章伟在 2015 年 7 月的销售业绩评价结果。
阅读全文