22,209
社区成员
发帖
与我相关
我的任务
分享
CREATE procedure 库存查询
@XZ smalldatetime
WITH RECOMPILE
AS
BEGIN
...
end
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
在语句前加上脏读试试
查询语所用到的对象在其它事务正在变更时没提交会阻塞 SELECT @XZ AS 查询日期,
a.产品批号 AS 产品批号,
a.产品规格 AS 产品规格,
a.原料机型 AS 原料机型,
a.产品色别 AS 产品色别,
a.筒管颜色 AS 筒管颜色,
ISNULL(COUNT(b1.装箱编号),0) AS 昨存件数,
ISNULL(SUM(b1.产品净重),0.00) AS 昨存重量,
ISNULL(COUNT(b2.装箱编号),0) AS 今增件数,
ISNULL(SUM(b2.产品净重),0.00) AS 今增重量,
ISNULL(COUNT(b3.装箱编号),0) AS 今发件数,
ISNULL(SUM(b3.产品净重),0.00) AS 今发重量,
ISNULL(COUNT(b4.装箱编号),0) AS 今存件数,
ISNULL(SUM(b4.产品净重),0.00) AS 今存重量,
a.机台编号 AS 机台编号,
a.仓库编号 AS 仓库编号
FROM dbo.条码装箱 a
LEFT JOIN dbo.条码装箱 b1
ON a.产品批号 = b1.产品批号
AND a.筒管颜色 = b1.筒管颜色
AND b1.装箱日期 < @XZ
AND b1.发货日期 < @XZ
LEFT JOIN dbo.条码装箱 b2
ON a.产品批号 = b2.产品批号
AND a.筒管颜色 = b2.筒管颜色
AND b2.装箱日期 = @XZ
LEFT JOIN dbo.条码装箱 b3
ON a.产品批号 = b3.产品批号
AND a.筒管颜色 = b3.筒管颜色
AND b3.发货日期 = @XZ
LEFT JOIN dbo.条码装箱 b4
ON a.产品批号 = b4.产品批号
AND a.筒管颜色 = b4.筒管颜色
AND b4.装箱日期 < @XZ
AND b4.发货日期 = @XZ
GROUP BY a.产品批号,a.产品规格,a.原料机型,a.产品色别,a.筒管颜色,a.机台编号,a.仓库编号
SELECT @XZ AS 查询日期 ,
CAST(ISNULL(( COUNT(B.装箱编号) ), 0.00) - ISNULL(( COUNT(C.装箱编号) ),
0.00) AS DECIMAL(18,
0)) AS 昨存件数
FROM dbo.条码装箱 A
JOIN dbo.条码装箱 B ON A.产品批号 = B.产品批号
AND A.筒管颜色 = B.筒管颜色
AND B.装箱日期 < @XZ
JOIN dbo.条码装箱 C ON A.产品批号 = C.产品批号
AND A.筒管颜色 = C.筒管颜色
AND B.发货日期 < @XZ