任务描述

本关任务:
销售数据库有工作人员、销售单数据表
工作人员gzry数据表有雇员号gyh、姓名gyxm、出生日期csrq、学历xl、工资gz、部门bm、电话dh字段

销售单xsd数据表有销售单号xsdh、会员号hyh、雇员号gyh、销售日期xsrq、应付款yfk、实际付款sjfk字段

任务要求

建立存储过程

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


相关知识

参数列表

([in|out|inout proc_name type][,in|out|inout proc_name type])

过程可以没有参数或多个参数,多个参数之间用逗号分隔
IN输入参数,使数据可以传递给存储过程
OUT输出参数,用于需要返回结果
INOUT输入输出参数 既可以充当输入参数也可以充当输出参数

调用存储过程

CALL 存储过程(参数列表)

当有out参数时,可以用全局变量接收结果
全局变量以@开头,在mysql会话中一直有效

case多分支语句

CASE
WHEN   <条件1> THEN  <语句1>
WHEN   <条件2>   THEN <语句2>
……
[Else  <其他语句>]
END CASE

代码

use sale;
#代码开始
delimiter $$
create procedure ygyj(in nf int, in yf int, in xm varchar(10), out pj varchar(10))
begindeclare jg int;select sum(sjfk) from xsd join gzry on gzry.gyh = xsd.gyh where year(xsrq) = nf and month(xsrq) = yf and gyxm = xm into jg;casewhen isnull(jg) then set pj = "无业绩";when jg < 5000 then set pj = "不达标";when jg < 10000 then set pj = "达标";else set pj = "优秀";end case;
end $$
delimiter ;
call ygyj(2015, 7, "王雅静", @yj1);
call ygyj(2015, 6, "廖秉娴", @yj2);
call ygyj(2015, 7, "赵敏", @yj3);
call ygyj(2015, 7, "章伟", @yj4);
#代码结束
select @yj1,@yj2,@yj3,@yj4;

数据库实验 | 第2关:建立和调用存储过程(带输出参数)相关推荐

  1. C#调用存储过程带输出参数或返回值分类(转)

    C#调用存储过程带输出参数或返回值 分类: Asp.net MSSQL2014-05-26 14:02 330人阅读 评论(0) 收藏 举报 [csharp] view plaincopyprint? ...

  2. mysql 输出参数赋值_【Mysql 调用存储过程,输出参数的坑】

    UIViewContentMode各类型效果 UIViewContentMode   typedef enum {    UIViewContentModeScaleToFill,    UIView ...

  3. php pdo 存储过程的返回所有结果,PHP_PDO 调用存储过程,返回参数问题

    $stmt = $db->prepare("CALL pro_test(?,@?)");$stmt->bindParam(1, $name);$stmt->bin ...

  4. C#里调用带输出参数的存储过程

    C#里调用带输出参数的存储过程  1using System;  2using System.Collections.Generic;  3using System.Linq;  4using Sys ...

  5. jpa调用mysql函数_Spring data jpa 调用存储过程处理返回参数及结果集(示例代码)

    一.环境 1.此随笔内容基于spring boot整合的spring data jpa项目, 2.数据库为mysql 5.7.9版本 二.内容 1. 新建存储过程 pro_query_object B ...

  6. 在asp中怎么调用带输出参数的存储过程

    这是我写的存储过程 CREATE proc hz @count2 bigint output, @minsl varchar, @maxsl varchar as create table #tmp( ...

  7. C# 调用存储过程操作 OUTPUT参数和Return返回值

    本文转载:http://www.cnblogs.com/libingql/archive/2010/05/02/1726104.html 存储过程是存放在数据库服务器上的预先编译好的sql语句.使用存 ...

  8. mybatis mysql 存储过程传入对象_mybatis 调用mysql存储过程 带输出输入参数

    首先感谢网络上以为朋友.其实我不认识.看到他的博客才做出来. http://lohasle.iteye.com/blog/1669879 他的地址.下面的是我一些简单拓展的 ? ? 存储过程都是一样的 ...

  9. pdo mysql 存储过程 out_PHP_PDO 调用mysql 带返回参数的存储过程

    DROP PROCEDURE IF EXISTS pro_test; create procedure pro_test(in val VARCHAR(50) ,out rtn int) begin ...

  10. SQL server 存储过程的建立和调用

    SQL server 存储过程的建立和调用 存储过程的建立和调用 --1.1准备测试需要的数据库:test,数据表:物料表,采购表 if not exists (select * from maste ...

最新文章

  1. 嵌入式四大通信接口的解释
  2. 2020-10-26如何在Amazon AWS上设置一台免费Linux云主机
  3. 千亿参数大模型时代,QQ浏览器团队十亿级小模型「摩天」登顶CLUE
  4. 如何卸载Exchange Server 2010
  5. android Handler机制之ThreadLocal详解
  6. 如何修改桌面,收藏夹,我的文档等等的存储位置
  7. MySQL查询日志总结
  8. Python3空字符串和len()函数
  9. idea提示 cannot resolve symbol “println
  10. 『数据库』这篇数据库的文章真没人看--数据库完整性
  11. 《零基础》MySQL 查询数据(十二)
  12. extjs树使用别的皮肤的样式_设计师发布努努重做之后的冰雪节皮肤设计稿
  13. Linux /etc/rc.d 下面 rc${runlevel}.d rc.local init.d 区别
  14. mysql nodejs 并发
  15. python第三周笔记_Python第四周 学习笔记(1)
  16. jenkins使用Role Strategy管理用户权限
  17. Windows10配置maven环境变量(图文教程)
  18. SQL SERVER 2000个人版下载
  19. 如何防御网站被攻击?
  20. Java中的条件运算符

热门文章

  1. C#开发微信门户及应用(26)-公众号微信素材管理
  2. android 晃动监听,Android 摇晃动画代码实现技巧
  3. 一次读懂flex布局
  4. Task 5 超大图上的节点表征学习
  5. turtle绘制哔哩哔哩小电视
  6. mac复制文件提示cp: /Volumes/WINDOWS11/sources/install.wim: File too large
  7. SHUCANGH_JIE
  8. [1]传奇3服务器源码分析一 LoginGate
  9. 利用Anaconda安装python第三方库
  10. linux 无法登陆mysql服务器_万网Linux独享服务器MySQL数据库无法登陆处理方法