日期:2014-05-18  浏览次数:20439 次

有两张表,进货销售表和库存表,怎样才能在进货销售表中插入数据,库存表可自动得出该商品的进货数量,进货退货数量,销售数量,销售退货数量以及得出库存数量
有两张表,进货销售表和库存表,怎样才能在进货销售表中插入数据,库存表可自动得出该商品的进货数量,进货退货数量,销售数量,销售退货数量以及得出库存数量
stock表字段如下:
商品名称 varchar(50)
供应商 varchar(50)
数量 int
单价 money
信息类型 varchar(50) //记录是进货信息,进货退货信息,销售信息,销售退货信息

Total表字段如下:
商品名称 varchar(50)
供应商 varchar(50)
进货数量 int
进货退货数量 int
销售数量 int
销售退货数量 int
库存数量 int

下面是我写的触发器,但在进货销售表中插入数据,库存表中数据为空,哪位高手可以帮我看看哪里有问题
CREATE TRIGGER mytrigger
ON dbo.Stock
FOR INSERT
AS
DECLARE @type1 VARCHAR(50), @type2 VARCHAR(50), @type3 VARCHAR(50), @type4 VARCHAR(50), @productname VARCHAR(50), @companyname VARCHAR(50), @stocknumber INT, @stock_back INT, @sellnumber INT, @sell_back INT
SELECT @type1='进货信息' FROM inserted
SELECT @type2='进货退货信息' FROM inserted
SELECT @type3='销售信息' FROM inserted
SELECT @type4='销售退货信息' FROM inserted
SELECT @productname FROM inserted
SELECT @companyname FROM inserted
SELECT @stocknumber=SUM(Number) FROM inserted WHERE Type= @type1 AND Productname=@productname
SELECT @stock_back=SUM(Number) FROM inserted WHERE Type=@type2 AND Productname=@productname
SELECT @sellnumber=SUM(Number) FROM inserted WHERE Type=@type3 AND Productname=@productname
SELECT @sell_back=SUM(Number) FROM inserted WHERE Type=@type4 AND Productname=@productname
BEGIN  
IF EXISTS (SELECT * FROM Total WHERE Total.Productname=@Productname)
UPDATE Total SET Total.Stocknumber=@stocknumber, Total.Stock_back=@stock_back, Total.Sellnumber=@sellnumber, Total.Sell_back= @sell_back WHERE Total.Productname=@Productname
IF NOT EXISTS (SELECT * FROM Total WHERE Total.Productname=@productname)
INSERT INTO Total(Productname, Companyname, Stocknumber, Stock_back, Sellnumber, Sell_back) VALUES (@productname, @companyname, @stocknumber, @stock_back, @sellnumber, @sell_back)
END


------解决方案--------------------