You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
sql-tools/库存.sql

115 lines
3.0 KiB

use qingdao_lafeipairui
--复制产品标准单位
DELETE TGoodsMultiUnit WHERE FUnitType = 1
INSERT INTO TGoodsMultiUnit(FId,FGoodsId,FUnitType,FUnitId,FSequence,FConvDir,FConvRate,FSalePrice,FPurCostPrice,FSaleCostPrice,FConsCostPrice,FBarCode,FUnitLock)
SELECT dbo.FNNewId(),A.FId AS FGoodsId,1,FUnitId,0,1,1,FSalePrice,FPurCostPrice,FSaleCostPrice,FConsCostPrice,FBarCode,FUnitLock
FROM TGoods AS A
--单位锁
UPDATE A
SET A.FUnitLock = 1
FROM TGoods AS A,TInventoryHist AS B
WHERE A.FId = B.FGoodsId
UPDATE A
SET A.FUnitLock = 1
FROM TGoodsMultiUnit AS A,TInventoryHist AS B
WHERE A.FGoodsId = B.FGoodsId
AND A.FUnitType = 1
UPDATE A
SET A.FUnitLock = 1
FROM TGoodsMultiUnit AS A,TInventoryHist AS B
WHERE A.FGoodsId = B.FGoodsId
AND A.FUnitId = B.FUnitId
AND A.FUnitType != 1
use jinan_gt
--检查库存历史和库存是否相等
SELECT * FROM
(
SELECT G.FNo,G.FName,C.FNo AS CompNo,A.FBatchNo, A.FGoodsId,A.FCompId,A.FStoreId,A.FQuantity,B.FHistQuantity
FROM (
SELECT A.FGoodsId,A.FCompId,A.FStoreId,SUM(A.FQuantity) AS FQuantity,A.FBatchNo
FROM TInventory AS A
GROUP BY A.FGoodsId,A.FCompId,A.FStoreId ,A.FBatchNo
) AS A
,
(
SELECT A.FGoodsId,A.FCompId,A.FStoreId,A.FBatchNo, SUM(A.FInStdQuantity) - SUM(A.FOutStdQuantity) AS FHistQuantity
FROM TInventoryHist AS A
GROUP BY A.FGoodsId,A.FCompId,A.FStoreId ,A.FBatchNo
) AS B, TGoods AS G,TCompany AS C
WHERE G.FId = A.FGoodsId
AND G.FId = B.FGoodsId
AND A.FGoodsId = B.FGoodsId
AND A.FStoreId = B.FStoreId
AND A.FCompId = B.FCompId
AND A.FCompId = C.FId
AND A.FBatchNo = B.FBatchNo
) AS A
WHERE A.FQuantity != A.FHistQuantity
--纠正
UPDATE A
SET A.FQuantity = B.FHistQuantity
FROM TInventory AS A, (
SELECT A.FGoodsId,A.FCompId,A.FStoreId,A.FBatchNo,SUM(A.FInStdQuantity) - SUM(A.FOutStdQuantity) AS FHistQuantity
FROM TInventoryHist AS A
GROUP BY A.FGoodsId,A.FCompId,A.FStoreId ,A.FBatchNo
) AS B
WHERE A.FCompId = B.FCompId
AND A.FGoodsId = B.FGoodsId
AND A.FStoreId = B.FStoreId
AND A.FBatchNo = B.FBatchNo
AND A.FQuantity != B.FHistQuantity
--改单位
DECLARE @GoodsId BIGINT
DECLARE @NewUnitId BIGINT
DECLARE @OldUnitId BIGINT
SELECT @GoodsId = 5254077160902154974
SELECT @NewUnitId = 7222064295725136969
SELECT @OldUnitId = 7662466434053986928
UPDATE TGoods
SET FUnitId = @NewUnitId WHERE FId = @GoodsId AND FUnitId = @OldUnitId
UPDATE TGoodsMultiUnit
SET FUnitId = @NewUnitId
WHERE FGoodsId = @GoodsId
AND FUnitId = @OldUnitId
UPDATE TInventoryLog
SET FUnitId = @NewUnitId
WHERE FGoodsId = @GoodsId
AND FUnitId = @OldUnitId
UPDATE A
SET A.FUnitId = @NewUnitId
FROM TStockInDetail AS A
WHERE A.FGoodsId = @GoodsId
AND A.FUnitId = @OldUnitId
UPDATE A
SET A.FUnitId = @NewUnitId
FROM TStockOutDetail AS A
WHERE A.FGoodsId = @GoodsId
AND A.FUnitId = @OldUnitId
UPDATE A
SET A.FUnitId = @NewUnitId
FROM TConsumeGoods AS A
WHERE A.FGoodsId = @GoodsId
AND A.FUnitId = @OldUnitId