数据库存储系统应用,超市小票系统

create database chaoshixiaopiao4
go
use chaoshixiaopiao4
go

--创建供应商的表格
create table gongying
(
gno   int primary key identity(1001,1) not null,--供应商编号
gname varchar(40),              --供应商名称
gdizhi varchar(40)              --供应商地址
)
--插入供应商内容
insert into gongying values('可口可乐公司','美国')
insert into gongying values('绿箭集团','天津')
insert into gongying values('康师傅集团','北京')
insert into gongying values('达利园集团','北京')
insert into gongying values('创达公司','深圳')

--创建超市货架表格
create table huojia
(
hno    int primary key identity(10001,1) not null,--商品编号
hname  varchar(20),                               --商品名称
hjin    decimal(18,2),                            --商品进价                           
hshou   decimal(18,2),                            --商品售价
hshu   int,                                       --商品数量
hgno   int,                                       --商品供应商编号
)
insert into huojia values('可口可乐',2.5,3,20,1001)
insert into huojia values('零度',2,3,20,1001)
insert into huojia values('绿箭口香糖',1,1.5,20,1002)
insert into huojia values('康师傅方便面',3,3.5,20,1003)
insert into huojia values('达利园小面包',5,5.5,20,1004)
insert into huojia values('薯片',3,3.5,20,1005)

--创建小票的表格
create table xiaopiao
(
xno  int primary key identity(1,1),
xhno  int,
xname varchar(20),
xhjia decimal(18,2),
xshu  int,
xzong decimal(18,2)
)

create proc piao1
@shumu int,
@huohao int
as
begin
    declare 
    @count  int,
    @huoshu int,
    @sjia  decimal(18,2),
    @he    decimal(18,2),
    @huoname varchar(20),
    @ci int

  
    select @huoshu=hshu from huojia where hno=@huohao;
    select @count=COUNT(*) from huojia where hno=@huohao; 
    if @count>0   
       begin
           set @ci=@ci+1
           if @shumu>=0
              begin
              update huojia set hshu=(@huoshu+@shumu) where hno=@huohao
              
              select @huoname=hname from huojia where hno=@huohao
              select @sjia=hjin from huojia where hno=@huohao
              set @he=@sjia*@shumu
              insert into xiaopiao values(@huohao,@huoname,@sjia,@shumu,@he)
              select @ci=COUNT(*) from xiaopiao
              select xno as 小票号,xhno as 商品编号,xname as 商品名称,xhjia as 进价,xshu as 数量,xzong as 总价 from xiaopiao
              where xno=@ci
              end
           else
              begin
              set @shumu = -@shumu
              if  @shumu<=@huoshu
                begin
                update huojia set hshu=@huoshu-@shumu where hno=@huohao
                
                select @huoname=hname from huojia where hno=@huohao
                select @sjia=hshou from huojia where hno=@huohao
                set @he=@sjia*@shumu
                insert into xiaopiao values(@huohao,@huoname,@sjia,@shumu,@he)
                select @ci=COUNT(*) from xiaopiao
                select xno as 小票号,xhno as 商品编号,xname as 商品名称,xhjia as 单价,xshu as 数量,xzong as 总价 from xiaopiao
                where xno=@ci
                end
              else
                begin
                
                select '此商品数量不足!'
                select hno as 商品编号,hname as 商品名称,hshou as 单价,hshu as 数量 from huojia 
                end
              end
       end
    else
       print '超市无此商品!'
  

end
go

exec piao1  -2,10003

exec piao1  -2,10002
exec piao1  -2,10001

select * from xiaopiao
原文地址:https://www.cnblogs.com/fengsantianya/p/5592684.html