有两张表,进货销售表和库存表,怎样才能在进货销售表中插入数据,库存表可自动得出该商品的进货数量,进货退货数量,销售数量,销售退货数量以及得出库存数量
stock表字段如下:
商品名称 varchar(50)
供应商 varchar(50)
数量 int
单价 money
信息类型 varchar(50) //记录是进货信息,进货退货信息,销售信息,销售退货信息
Total表字段如下:
商品名称 varchar(50)
供应商 varchar(50)
进货数量 int
进货退货数量 int
销售数量 int
销售退货数量 int
库存数量 int
------解决方案--------------------
不管你的Stock表是什么文
Productname不应该是主键
还有我始终不明白
SELECT @type1='进货信息' FROM inserted
SELECT @type2='进货退货信息' FROM inserted
SELECT @type3='销售信息' FROM inserted
SELECT @type4='销售退货信息' FROM inserted
这几句有什么用
要写直接
set @type1='进货信息' 就行
------解决方案--------------------
- SQL code
create trigger alter_table on table stockfor insertas declare @productname varchar(50)declare @Companyname varchar(50)declare @number int declare @type varchar(50)declare @sql varchar(4000)declare c_cur cursorfor select productname,Companyname,Number,Type from insertedopen c_curfetch next from c_cur into @productname,@Companyname,@number,@typewhile @@fetch_status=0 begin if not exists( select * from Total where [email protected] and [email protected]) begin insert into Total(productname,Companyname) values(@productname,@Companyname) end update Total set Stocknumber=(case when @type='进货信息' then @number else 0 end), set Stock_back=(case when @type='进货退货信息' then @number else 0 end), set Sellnumber=(case when @type='销售信息' then @number else 0 end), set Sell_back=(case when @type='销售退货信息' then @number else 0 end) where [email protected] and [email protected])fetch next from c_cur into @productname,@Companyname,@number,@typeendclose c_curdeallocate c_cur