前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【超级干货】SQL随机增加销售数据的脚本编写(附脚本下载地址)

【超级干货】SQL随机增加销售数据的脚本编写(附脚本下载地址)

作者头像
Vaccae
发布2019-07-25 11:14:27
6160
发布2019-07-25 11:14:27
举报
文章被收录于专栏:微卡智享微卡智享微卡智享

前言

我们在做查询报表编写进行测试的时候,需要很多的原始数据才能检测报表的准确度,如果通过软件里一步一步的操作生成原始数据会非常的耗时,所以才想写一个脚本来自动生成随机数据,方便进行测试。


准备工作

正常我们商业来说每销售一笔数据都会生成一笔流水,一般流水会有商品流水(即这笔销售里面都有什么商品),付款流水(即这笔流水里面用的哪种支付方式,如现金,银行卡,支付宝,微信等),还需要一个原始的商品资料表和一个支付方式的表,所以我们先建四个表,这里主要是为了给大家分享一下实现的方式,所以我们建的表都比较简单。

商品资料表

然后我们自己先插入一些模拟数据,插入数据这里很简单我就不再写了

支付方式

我们也插入一些支付方式的数据

商品流水表

付款流水表

这样我们的准备工作已经完成了


实现思路

我们可以自己设置一个变量定义要生成的流水笔数,然后做一个循环一笔一笔的进行生成,下面是主要介绍每笔流水生成的思路。

  1. 生成当前流水的流水号
  2. 生成当前流水的销售日期和销售时间
  3. 随机生成当前流水的商品流水数据
  4. 随机生成当前流水的付款流水数据

编写脚本

定义我们要用到的变量

初始设置一些基本的参数

开始进入循环插入,每次都要先初始化当前流水的交易总金额,防止计算出错

当每笔流水插入完后记得要把流水号加1,把要生成的流水笔数减1(防止死循环)


1.生成当前流水的流水号

流水号生成格式为当前年月日加四位的流水

select @lsh= RIGHT('000000'+convert(varchar(4),@lsno),4)

用这个来先生成4位流水,如果前面不够4位的用0补齐,然后前面再加上当前的年月日


2.生成当前流水的销售日期和销售时间

销售日期我们默认为当前日期,时间是通过随机生成的,原理是小时随机生成不大于23的两位数,分钟和秒都是随机生成不大于59的两位数,用100+生成数再截取后面2位是防止只有个位数的话还需要再前面补0的操作


3.随机生成当前流水的商品流水数据

  • select top (@nowspqty) 商品编码,商品名称,售价 from 商品信息 order by NEWID()这句后面的order by NewID()是查询后随机生成排序,通过top加我们要生成的商品个数,每次查询都会随机生成不同的商品信息
  • 通过游标后进行数据的遍历,每一条数据遍历时随机生成销售的数量,并计算当前商品的销售额及总流水的销售额
  • 将当前的商品写入商品的流水表里

4.随机生成当前流水的付款流水数据

  • 首先随机获取本次流水的支付方式个数
  • 随机抽取出本次流水的支付方式
  • 计算当前支付流水的支付金额,原理:当只剩一笔支付情况下,我们就把剩余的总销售金额全部算到当前支付流水里,如果大于一笔的支付情况下,我们随机计算当前的支付金额(支付金额不大于剩余销售金额)

查询生成的结果数据

商品流水表数据

付款流水表数据

附脚本下载地址:

链接:https://pan.baidu.com/s/1Kt80cpwH8YAX7lu0GrRJHQ 密码:ti6e


-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档