销售业务设计过程

1️⃣与销售业务有关的表?

tb_syjlb(收银记录表)

tb_symxb(收银明细表)

tb_kcxxb(库存信息表)

tb_hyxxb(会员信息表)

2️⃣与这些表的关系?

tb_syjlb(收银记录表) insert

tb_symxb(收银明细表) insert

tb_kcxxb(库存信息表) update

tb_hyxxb(会员信息表) update

3️⃣分别需要对哪些列赋值或更新哪些列的值?

tb_syjlb(收银记录表) insert syyid(收银员id) gkid(顾客id) ysje(应收金额) ssje(实收金额) zffs(支付方式)

tb_symxb(收银明细表) insert syid(收银id) hpid(货品id) xssl(销售数量) dj(单价) lsj(零售价)

tb_kcxxb(库存信息表) update 依据hpid xssl(销售数量)更新kcsl(库存数量)

tb_hyxxb(会员信息表) update 依据hyid(会员id) ssje(销售金额)更新knye(卡内余额) kyjf(可用积分)

4️⃣这些值从何而来?

tb_syjlb(收银记录表)insert syyid gkid ysje ssje zffs 需要从用户界面传过来 syyid gkid ysje ssje zffs

tb_syjlmxb(收银记录明细表)insert syid hpid xssl dj lsj 需要从用户界面传过来 hpid xssl

tb_hpkcb (货品库存表) update 依据hpid xssl 更新 kcsl 需要从用户界面传过来hpid xssl

tb_hyxxb(会员信息表) update 依据hyid ssje 更新knye kyjf 需要从用户界面传过来 hpid ssje

5️⃣表格数据向数据库传递的方法——数据转换的方法(没有表参数,就是没办法直接把表从界面传给数据库)转换方法?

把表格中的数据连接成字符串,传到数据库中后再把字符串还原为表格

例如:把销售明细中的hpid,xssl连接为以逗号分隔的字符串

DELIMITER $$CREATEPROCEDURE `possystem`.`xsjlcp`(xsmx VARCHAR(1000))BEGINDROP TABLE IF EXISTS lsb;CREATE TEMPORARY TABLE lsb(hpid INT,xssl NUMERIC(18,3));WHILE (xsmx>'') DOSET @k=POSITION(',' IN xsmx);SET @hpid=LEFT(xsmx,@k-1);SET xsmx=SUBSTR(xsmx,@k+1);SET @k=POSITION(',' IN xsmx);SET @xssl=LEFT(xsmx,@k-1);INSERT INTO lsb VALUES(@hpid,@xssl);SET xsmx=SUBSTR(xsmx,@k+1);END WHILE;SELECT * FROM lsb;SELECT hptm,hpmc,jldw,dj,cxj,xssl*cxj AS 金额 FROM tb_hpxxb,lsb WHERE tb_hpxxb.hpid=lsb.hpid;END$$DELIMITER ;

为什么在mysql中执行存储过程不出结果?

6️⃣销售业务实现?

DELIMITER $$CREATEPROCEDURE `possystem`.`xsjlcp_new`(syyid INT,hyid INT,ysje DECIMAL(18,2),ssje DECIMAL(18,2),zffs TINYINT,xsmx VARCHAR(1000))BEGIN/*1. tb_syjlb(收银记录表) insert syyid(收银员id) gkid(顾客id)ysje(应收金额) ssje(实收金额) zffs(支付方式)*/INSERT INTO tb_syjlb(syyid,gkid,ysje,ssje,zffs) VALUES(syyid,hyid,ysje,ssje,zffs);SET @syid=@@identity;DROP TABLE IF EXISTS lsb;CREATE TEMPORARY TABLE lsb(hpid INT,xssl NUMERIC(18,3));WHILE (xsmx>'') DOSET @k=POSITION(',' IN xsmx);SET @hpid=LEFT(xsmx,@k-1);SET xsmx=SUBSTR(xsmx,@k+1);SET @k=POSITION(',' IN xsmx);SET @xssl=LEFT(xsmx,@k-1);INSERT INTO lsb VALUES(@hpid,@xssl);SET xsmx=SUBSTR(xsmx,@k+1);END WHILE;/*2. tb_syjlmxb(收银记录明细表)insert syid hpid xssl dj lsj 需要从用户界面传过来 hpid xssl*/INSERT INTO tb_symxb(syid,hpid,xssl,dj,lsj) SELECT @syid,lsb.hpid,xssl,dj,cxj FROM lsb,tb_hpxxb WHERE lsb.hpid=tb_hpxxb.`hpid`;/*3. tb_hpkcb (货品库存表) update 依据hpid xssl 更新 kcsl 需要从用户界面传过来hpid xssl*/DROP TABLE IF EXISTS lsb1;CREATE TEMPORARY TABLE lsb1(hpid INT,xssl NUMERIC(18,3));INSERT INTO lsb1 SELECT hpid,SUM(xssl) FROM lsb GROUP BY hpid;UPDATE tb_hpkcb b1,lsb1 b2 SET b1.kcsl=b1.kcsl-b2.xssl WHERE b1.hpid=b2.hpid;/*4. tb_hyxxb(会员信息表) update 依据hyid ssje 更新knye kyjf 需要从用户界面传过来 hpid ssje */IF hyid>10000 THENUPDATE tb_hyxxb SET knye=knye-ssje,kyjf=kyjf+FLOOR(ssje) WHERE tb_hyxxb.`hyid`=hyid;END IF;END$$DELIMITER ;

一、事务的概念

在销售存储过程中增加事务控制

start transaction;

COMMIT; 或者

ROLLBACK;

二、作业与思考题:

1、在上面的练习中用到了哪些内置函数?

MySQL POSITION() 函数


实例

在字符串“begtut.com”中搜索“u”,并返回位置:

SELECT POSITION("u" IN "begtut.com") AS MatchPosition;

运行实例»


定义和用法

POSITION()函数返回字符串中第一次出现的子字符串的位置。

如果在原始字符串中找不到子字符串,则此函数返回0。

此函数执行不区分大小写的搜索。

注:LOCATE()函数等于position()函数。

语法

POSITION(substring IN string)

参数值
参数 描述
substring 必须项。要在字符串中搜索的子字符串
string 必须项。要搜索的原始字符串

MySQL LEFT() 函数


实例

从字符串中提取3个字符(从左侧开始):

SELECT LEFT("SQL Tutorial", 3) AS ExtractString;

运行实例»


定义和用法

LEFT()函数从字符串中提取多个字符(从左开始)。

**提示:**另请查看RIGHT()函数。

语法

LEFT(string, number_of_chars)

参数值
参数 描述
string 必须项。要从中提取的字符串
number_of_chars 必须项。要提取的字符数。如果此参数大于字符串中的字符数,则此函数将返回字符串

MySQL SUBSTR() 函数


实例

从字符串中提取子字符串(从位置5开始,提取3个字符):

SELECT SUBSTR("SQL Tutorial", 5, 3) AS ExtractString;

运行实例»


定义和用法

SUBSTR()函数从字符串中提取子字符串(从任何位置开始)。

注意: SUBSTR()和MID()函数等于SUBSTRING()函数。

语法

SUBSTR(string, start, length)

要么:

SUBSTR(string FROM start FOR length)

参数值
参数 描述
string 必须项。要从中提取的字符串
start 必须项。起始位置。可以是正数或负数。如果是正数,则此函数从字符串的开头提取。如果是负数,则此函数从字符串的末尾提取
length 可选项。要提取的字符数。如果省略,将返回整个字符串(从起始位置)

2、临时表如何创建?

先把临时表转化成字符串,再把字符串转换成表格,添加到创建的表中

3、如何实现带子查询的插入操作?

insert into *** select *** from tb where ***;

4、@@identity里面存储的是什么数据?

@@identity得到上一次插入记录时自动产生的ID

5、设计存储过程的基本步骤是什么?

创建存储过程—>写所需要的参数—>根据功能编写sql语句—>测试存储过程

pos系统开发步骤3-销售业务的实现相关推荐

  1. pos系统开发步骤1-创建数据库以及拼音缩写的实现

    pos系统开发步骤1-创建数据库以及拼音缩写的实现

  2. pos系统开发步骤2- 建立数据库和表

    建立数据库和表

  3. 安徽微享商盟系统开发步骤共享链

    在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个不同表之间可以存在外键依赖关系,一个表自身也可以有自反关系(表中的一个字段引用主键,从而也是外键字段). Entity Fra ...

  4. 酒店预定系统开发步骤_分享酒店预订系统小程序开发制作功能介绍

    酒店预订系统就是针对酒店业务的商家,利用此系统进行线上酒店销售与宣传,可以对酒店产品的发布.修改.报价.游客通过商家搭建的小程序拼团,可以查看酒店产品,在线预订酒店产品,帮助商家将传统线下酒店销售转移 ...

  5. 陕西二级分销系统开发适合做什么业务?

    二级分销的具体层级划分,还有分佣的层级大家都已经很清楚了,那我们该如何去看自己的业务适不适合做二级分销呢? 二级分销的受众范围还是非常广的,比如说我们经常可以用到的日用品,或者是一些价格比较低的快消品 ...

  6. 实体店商家微信会员系统开发步骤_分享微信会员系统优势

    门店如何快速吸引消费? 一般来说,新店开业时会有试营业活动. 在此期间,为了吸引注意力,店铺会以低价吸引顾客消费. 正式开业后,通常有两种方式来吸引新客户和培养客户: 编辑 1.微信抽奖 主要是利用微 ...

  7. 美发店预约系统开发的作用_分享美发店预约系统开发步骤

    在线可以先查看美发店提供的服务项目,可以查看项目的价格.商家介绍和目前的预约人数等详情,用户掌握了信息之后就能直接预约位置,可以自己选择到店的时间,有变动的话可以在线随时的取消预的,非常的方便.而目, ...

  8. 定制一个erp系统多少钱-【揭秘erp开发报价及开发步骤】

    为了更高效的管理业务,有不少企业都想要定制开发属于自己企业的ERP系统,在选择系统供应商的时候,很多企业都比较关心定制开发ERP的费用,定制一个erp系统多少钱呢,由于定制的产品不同于标准产品,无法统 ...

  9. 家政预约系统开发作用和步骤

    家政预约系统开发,家政预约系统开发作用,家政预约系统开发步骤.家政领域在迅速的快速发展之中,也逐渐以朝气蓬勃的活力,展现出专业化.低龄化.课程化.产业发展的四大发展趋势. 家政预约小程序作用: 1.连 ...

最新文章

  1. 这只狗,其实是猫变的:“撸猫神器”StarGAN v2来了!
  2. pandas使用duplicated函数删除dataframe中重复列名称的数据列、默认保留重复数据列中的第一个数据列(removing duplicate columns in dataframe)
  3. 算法:串联所有单词的子串
  4. L2-006. 树的遍历(不建树)
  5. c语言结构体定义字符串数组,C语言,结构体中字符串的声明(采用字符指针还是字符数组)...
  6. wp博客写文章500错误_500多个博客文章教我如何撰写出色的文章
  7. 怎么解决缺少java.doc_java 生成doc帮助文档时出现的问题
  8. 计算机识别键盘流程,通过计算机视觉的方式识别并判断键盘输入
  9. CH340串口驱动(包含各系统平台)
  10. openairinterface5g+limesdr搭建4G基站
  11. 5G无线网络优化覆盖
  12. 软件测试实验-决策表
  13. 苹果软件更新在哪里_苹果iOS 14.1/iPadOS 14.1正式版发布:新增更新机型[多图]-软件资讯...
  14. Cordova 卸载
  15. 用Python掌握QQ群聊天记录数据分析
  16. 渗透工具TPLogScan:ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能发掘网站日志信息
  17. php面试 猴子大王,php猴子选大王问题解决方法,猴子大王_PHP教程
  18. elon函数_Elon Mussk的Neuroink真是令人难以置信
  19. Linux 桥接ping不通外网(特别是校园网) 解决方式及错误总结
  20. 从一位老工程师的心里话开始谈起IT行业职

热门文章

  1. Github如何删除fork的项目
  2. jsMath绝对值和三个取整的方法
  3. 【考研英语语法】引语(从句入门必备)
  4. 职场小人 就在你背后
  5. 最好的中文字体下载站(带预览),1500个流行字体!
  6. 在matplotlib中加载mapbox底图(TransBigData)
  7. 微信小程序调试页面的坑
  8. 市场调研报告-全球与中国船用喷水推进器市场现状及未来发展趋势
  9. PHPStorm单词拼写纠正提示设置
  10. rk3128网络机顶盒一些测试结果