SQL 存储过程 超市小票打印
- create database chaoshils--创建一个数据库
- go
- use chaoshils--使用这个数据库
- go
- create table gongying--创建一个供应商的表格
- (
- gcode int primary key identity(1001,1),--供应商编号,主键
- gname varchar(20),--名称
- gsdh varchar(20),--电话
- gsdz varchar(20)--地址
- )
- --向供应商表格中添加数据
- insert into gongying values('可口可乐公司','','山东青岛')
- insert into gongying values('花生油公司','','山东济南')
- insert into gongying values('绿茶公司','','山东日照')
- insert into gongying values('矿泉水公司','','山东潍坊')
- insert into gongying values('红星二锅头公司','','北京')
- create table chaoshi--创建一个超市的表格
- (
- ccode int primary key,--产品编号
- cname varchar(20),--产品名称
- cshu int,--产品数量
- cjin decimal(18,2),--进价
- cshou decimal(18,2),--售价
- cgcode int --供应商编号,供应商表的外键
- )
- --向超市表格中添加数据
- insert into chaoshi values(10001,'可口可乐',100,2,3,1001)
- insert into chaoshi values(10002,'花生油',50,40,80,1002)
- insert into chaoshi values(10003,'绿茶',100,8,20,1003)
- insert into chaoshi values(10004,'矿泉水',150,1,2,1004)
- insert into chaoshi values(10005,'红星二锅头',120,3,5,1005)
- --创建一个小票的表格,不能直接插入数据,在下面存储过程中根据商品的销售情况向里面添加数据
- create table xiaopiao
- (
- xcode int,--产品编号,超市表的外键
- xname varchar(20),--产品名称
- xshu int,--购买的产品数量
- xjiage decimal(18,2),--产品单价
- zjia decimal(18,2) --产品总价
- )
- select*from gongying
- select*from chaoshi
- create proc liushui --创建一个存储过程用来记录卖出货物的数量价格添加于小票表中
- @mai int,--返回一个参数,购买的数量
- @hcode int--购买的商品的编号
- as
- begin
- declare--声明一下使用下面定义的变量
- @name varchar(20),
- @shu int,
- @danjia decimal(18,2),
- @zong decimal(18,2),
- @count int
- select @name=cname from chaoshi where ccode=@hcode--通过返回参数的商品编号在超市中查找商品名称赋值于变量@name中
- select @shu=cshu from chaoshi where ccode=@hcode--通过编号查找此商品现有的而数量赋值于变量@shu中
- select @danjia=cshou from chaoshi where ccode=@hcode--通过编号查找此产品的价格赋值于变量@danjia中
- set @zong=@danjia*@mai--货物价格@danjia乘以返回参数中购买的数量@mai等于总价格,用变量@zong接收一下
- select @count=count(*)from chaoshi where ccode=@hcode--查看一下返回的参数商品编号是否存在,存在值为1,不存在为0,接收于变量@count中
- if @count>0--如果@count不为0,则存在这种商品
- begin
- if @shu> = @mai--如果超市内商品的数量大于或者等于购买的数量
- begin
- insert into xiaopiao values(@hcode,@name,@mai,@danjia,@zong)--则向xiaopiao表中添加购买信息
- select xcode as 编号,xname as 产品名称,xshu as 购买数量,xjiage as 单价,zjia as 合计 from xiaopiao--把添加到表格中的信息查询一下,列名改为汉字显示
- end
- else if @shu<@mai--如果超市内的商品数量小于购买的数量
- begin
- print'货物不足' --则,货物不足
- end
- end
- else if @count=0--如果@count值为0,则没有这件商品
- begin
- print'没有此商品'
- end
- end
- go--选中执行此存储过程,只能执行一次
- exec liushui 50,10008--此处是执行存储过程liushui并返回两个参数,数量和商品编号,可修改数量以及商品参数选择其他商品
- --此处商品编号的参数在表中并有此编号的商品,则执行@count=0这一步,没有此商品,因此小票表中就不会添加数
--据- select*from xiaopiao--查看小票表中存储的数据
SQL 存储过程 超市小票打印的更多相关文章
- 【JS】通过JS实现超市小票打印功能——ActiveX控件
应客户的需求= = ,要在网页端实现打印小票的功能 先来一张打印出的小票效果图(合计明显不对,因为有修改订单功能,请各位忽略) 用什么方法实现呢: 我想应该是有三种吧 1.用第三方的浏览器控件(这个好 ...
- SQL存储过程+游标 循环批量()操作数据
本人收集的,挺有用的 1. 利用游标循环更新.删除MemberAccount表中的数据 DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT * FROM dbo.M ...
- 《软件测试自动化之道》读书笔记 之 SQL 存储过程测试
<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序 创建测试用例以及测试结果存储 执行T-SQL脚本 使用BCP工具导入测试用例数据 ...
- 存储过程——异常捕获&打印异常信息
目录 0. 背景说明 1. 建立异常信息表ErrorLog 2. 建立保存异常信息的存储过程 3. 建立在SQL Server中打印异常信息的存储过程 4. 建立一个用于测试的存储过程抛出异常进行测试 ...
- PL/SQL存储过程编程
PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...
- SQL存储过程分页(通用的拼接SQL语句思路实现)
多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...
- SQL存储过程的调用及写法
调用函数: public class SqlProcess { ; public DataSet ReturnSet = null; public SqlDataAdapter adapter = n ...
- sql存储过程几个简单例子
导读:sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解. 例1: cr ...
- SQL存储过程生成顺序编码
一.第一种方式 USE [WJKC]GO/****** Object: StoredProcedure [dbo].[Address_GetCode1] Script Date: 2016/3 ...
随机推荐
- openVPN之Luci及tap模式
一. 1.复制luci-sc-openvpn源码到/home/tingpan/openwrt/barrier_breaker/feeds/luci/applications文件夹下. 二. /home ...
- opencv读取并播放avi视屏
视屏的本质是一些静态的图像的集合,opencv可以不断读取视屏中的图片,显示,就产生了类似电影的效果. 这样也就可以通过opencv对实时的视屏流进行处理了. #include "stdaf ...
- MySQL集群Percona XtraDB Cluster安装搭建步骤详解
http://www.linuxidc.com/Linux/2017-05/143501.htm http://blog.csdn.net/thundermeng/article/details/52 ...
- jni头文件自动生成
写一个测试代码,大概如下 package aa.bb; public class TestClass { public native void aaaBBB(); } 在项目的src目录下执行 jav ...
- 多线程执行顺序诡异现象谈,你不知道的pthread_create
引文:学而时习之,不亦说乎.总是忙于具体项目,业务功能的实现:关于编程本身的技能都要有些生疏了,于是就选择了几个专题做了一次温习,重点放在了多线程和多进程上,跑了一个实例,居然有新的发现: (1)多个 ...
- excel注释怎么添加图片
批注中加图片:插入批注>点击批注边框线(注意是边线框,不是里面的编辑区域),右键,设置批注格式>颜色与线条>填充,选择颜色,填充效果>图片>选择图片>确定>确 ...
- hdu 1278 逃离迷宫
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Java-Runoob-高级教程-实例-数组:06. Java 实例 – 数组获取最大和最小值
ylbtech-Java-Runoob-高级教程-实例-数组:06. Java 实例 – 数组获取最大和最小值 1.返回顶部 1. Java 实例 - 数组获取最大和最小值 Java 实例 以下实例 ...
- 小甲鱼-013元组tuple:上了枷锁的列表
1.创建和访问一个元组 1.1创建元组 元组的标志性符号是 , tuple1 = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) #定义单个元素的元组,要加 , tuple2 = (1 ...
- 1036 Boys vs Girls (25 分)
1036 Boys vs Girls (25 分) This time you are asked to tell the difference between the lowest grade of ...