BEGIN
DECLARE securitiesnum_v decimal DEFAULT 0.0;
DECLARE assigned_v decimal DEFAULT 0.0;
#将查询到结果赋值到变量
select SUM(securitiesnum) into securitiesnum_v from zxzq_holding where memberid = v_in_memberid;
select  assigned * 0.8 into assigned_v from zxzq_information where memberid = v_in_memberid;

#v_in_securitiesnumSum < i.assigned * 0.8的情况
update zxzq_holding h, zxzq_information i  
set h.securitiesnum = if(securitiesnum_v > i.assigned * 0.8, h.securitiesnum, 0),
i.assigned = IF(h.securitiesnum > i.assigned * 0.8, h.securitiesnum, TRUNCATE(i.assigned - h.securitiesnum * 1.25,2))
  where h.memberid = v_in_memberid and i.memberid = v_in_memberid and i.assigned > 0;

#v_in_securitiesnumSum > i.assigned * 0.8的情况
if securitiesnum_v > assigned_v THEN
WHILE(assigned_v > 0) do
    update zxzq_holding h ,zxzq_information i set h.securitiesnum = if(h.securitiesnum > i.assigned * 0.8, TRUNCATE(h.securitiesnum - i.assigned * 0.8,2), 0),
    i.assigned = if(h.securitiesnum > i.assigned * 0.8,0, TRUNCATE(i.assigned - h.securitiesnum * 1.25,2))  where h.memberid = v_in_memberid and i.memberid = v_in_memberid and i.assigned > 0;

select  assigned into assigned_v from zxzq_information where memberid = v_in_memberid;
END WHILE;
end if;
END

一个MySQL存储过程的模板相关推荐

  1. 写一个MySql存储过程实现房贷等额本息还款计算(另外附javascript代码)

    写一个MySql存储过程实现房贷等额本息还款计算 MySql存储过程代码如下: DROP procedure IF EXISTS `calc_equal_interest_proc`;DELIMITE ...

  2. MySQL存储过程详解

    1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...

  3. mysql存储过程语法及实例

    存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...

  4. MySQL存储过程详解 mysql 存储过程

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  5. mysql存储过程详解[转]

    mysql存储过程详解[转] 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功 ...

  6. mysql存储过程编写

    2019独角兽企业重金招聘Python工程师标准>>> 记录一下自己写的一个mysql存储过程,在游标方面和oracle有些不一样,mysql是使用一个HANDLER来处理数据读取完 ...

  7. 在mybatis用mysql的代码块_关于Mybatis 中使用Mysql存储过程的方法

    1.存储过程的简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用 ...

  8. mysql的存储过程正负数的变化_《转》mysql存储过程语法及范例

    <转>mysql存储过程语法及实例 存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法------- ...

  9. mysql存储过程语法 if_mysql存储过程语法 if

    MySql存储过程 MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程, ...

最新文章

  1. 栈和堆的区别(转 知乎)
  2. stream filter_Stream 流实践
  3. python读数据-如何用 Python 读取数据?
  4. [转]php初级教程(七)一个新闻管理系统(准备工作)
  5. request.getContextPath()的功能
  6. 在 iOS 或者 Mac OS X 中将 NSDictionary 映射为本地对象的方法
  7. vuejs 和 element 搭建的一个后台管理界面【收藏】
  8. Python遍历字典的四种方法对比
  9. 基于wordpress搭建网站和基于nodejs自己搭建
  10. 如何查看linux的资源,Linux系统资源查看(示例代码)
  11. redis的主从复制,哨兵值守
  12. 动态规划法(九)想要更多例子? 1
  13. 二项式定理等价变换与简单推论
  14. Pannellum:实例之一个简单的例子
  15. Inno Setup 为程序创建桌面快捷方式
  16. 【Virtual Box 错误】0x00000000 指令引用的 0x00000000 内存。该内存不能为written
  17. macOS Monterey 怎么升级?macOS 12升级教程
  18. EXCEL 合并同样格式的多个excel文件
  19. wx.getUserProfile踩坑填坑大全,is not a function?fail can only be invoked by user TAP gesture?
  20. java家庭收支记账软件-day01

热门文章

  1. 【Linux笔记(001) 】-- centos7 系统目录结构与文件
  2. Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势
  3. mof格式的文件怎么打开?用什么工具?
  4. Redis常用数据结构和操作
  5. 使用Throwable获得栈信息
  6. getLastSql()用法
  7. mysql 5.6到percona 5.6小版本升级
  8. .NET之全平台一体化的体验
  9. how to check unsolved conflicts file list in git merge?
  10. WinAPI: midiOutGetNumDevs - 获取 MIDI 输出设备的数目