SQL存储过程 解释一下好么!谢谢了!~

来源:百度知道 编辑:UC知道 时间:2024/05/27 23:44:15
CREATE PROCEDURE sf_进货单
AS
begin transaction
-- 库存库中没有,增加记录
INSERT INTO 库存库(货号,仓库,库存数量,库存金额,库存单价) SELECT DISTINCT j.货号, j.仓库, 0,0,0
FROM 进货单明细 AS J left join 库存库 as k on ( j.仓库=k.仓库 and j.货号=k.货号 )
where k.货号 is null
-- 修改库存信息
UPDATE 库存库 SET 库存单价=case when 库存数量<=0 or (库存数量+数量ALL)<=0 then 进价
else (库存金额+税价合计ALL)/(库存数量+数量ALL) end ,
库存数量=库存数量+数量ALL,
库存金额=case when 库存数量<=0 or (库存数量+数量ALL)<=0
then 进价*(库存数量+数量ALL) else (库存金额+税价合计ALL) end ,
最新进价=进价
FROM
(SELECT 仓库,货号,'数量ALL'=sum(进货数量), '进价' = sum(税价合计)/sum(进货数量),
'税价合计ALL'=sum(税价合计) FROM 进货单明细 GROUP BY 仓库,货号) AS LSJ
WHERE 库存库.仓库=LSj.仓库 AND 库存库.货号=LSj.货号
-- 加入应付款
INSERT INTO 应付款(编号, 进货单号, 货号, 供货商号, 数量, 进货单价, 金额, 进货日期, 状态)
SELECT '付'+a.编号,b.编号,a.货号,b.供货商号,进货数量,进价,a.税价合计,进货日期,'应付'
FROM 进货单明细 as a, 进货单 as b
where a.进货单号=b.编号
-- 加入历

SELECT DISTINCT j.货号, j.仓库, 0,0,0
FROM 进货单明细 AS J left join 库存库 as k on ( j.仓库=k.仓库 and j.货号=k.货号 )
where k.货号 is null
这就是一个连接查询。where k.货号 is null
这只是一个条件!

这个怎么给你解释

可阅读性太差!