更新销售合同/提成/业绩、精工工序工价/生产审核/工时统计、仓储盘点/库存/补货/入库/库房管理,新增提成设置/销售业绩/库房管理/入库单移动端等模块及SQL脚本

This commit is contained in:
Developer
2026-08-05 08:13:08 +08:00
parent 33549c3787
commit fd84f9d3ca
94 changed files with 14531 additions and 345 deletions

View File

@@ -1,322 +1,306 @@
-- 库存查询需求量性能优化:直连基础表判断订单完成状态,减少重视图展开
-- 修改人:Ld 修改时间:2026-07-14 16:35:00;
-- 搴撳瓨鏌ヨ闇€姹傞噺鎬ц兘浼樺寲锛氱洿杩炲熀纭€琛ㄥ垽鏂鍗曞畬鎴愮姸鎬侊紝鍑忓皯閲嶈鍥惧睍寮€
-- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00;
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_零件基本件_物料组件_20260714' AND object_id = OBJECT_ID(N'dbo.PDM_零件明细表_基本件'))
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_闆朵欢鍩烘湰浠禵鐗╂枡缁勪欢_20260714' AND object_id = OBJECT_ID(N'dbo.PDM_闆朵欢鏄庣粏琛╛鍩烘湰浠?))
BEGIN
CREATE NONCLUSTERED INDEX IX_Ld_零件基本件_物料组件_20260714
ON dbo.PDM_零件明细表_基本件 (, )
INCLUDE (, );
CREATE NONCLUSTERED INDEX IX_Ld_闆朵欢鍩烘湰浠禵鐗╂枡缁勪欢_20260714
ON dbo.PDM_闆朵欢鏄庣粏琛╛鍩烘湰浠?(鐗╂枡娴佹按鍙? 缁勪欢娴佹按鍙?
INCLUDE (闆朵欢鏁伴噺, 宸查鏁伴噺);
END;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_零件标准外购_物料组件_20260714' AND object_id = OBJECT_ID(N'dbo.PDM_零件明细表_标准件和外购件'))
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_闆朵欢鏍囧噯澶栬喘_鐗_20260714' AND object_id = OBJECT_ID(N'dbo.PDM_闆朵欢鏄庣粏琛?))
BEGIN
CREATE NONCLUSTERED INDEX IX_Ld_零件标准外购_物料组件_20260714
ON dbo.PDM_零件明细表_标准件和外购件 (, )
INCLUDE (, );
CREATE NONCLUSTERED INDEX IX_Ld_闆朵欢鏍囧噯澶栬喘_鐗_20260714
ON dbo.PDM_闆朵欢鏄庣粏琛?(? ?
INCLUDE (, );
END;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_临时领料_物料组件_20260714' AND object_id = OBJECT_ID(N'dbo.车间装配管理_装配执行_临时领料明细'))
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_涓存椂棰嗘枡_鐗╂枡缁勪欢_20260714' AND object_id = OBJECT_ID(N'dbo.杞﹂棿瑁呴厤绠悊_瑁呴厤鎵ц_涓存椂棰嗘枡鏄庣粏'))
BEGIN
CREATE NONCLUSTERED INDEX IX_Ld_临时领料_物料组件_20260714
ON dbo._装配执行_临时领料明细 (, )
INCLUDE ();
CREATE NONCLUSTERED INDEX IX_Ld_涓存椂棰嗘枡_鐗_20260714
ON dbo._瑁呴厤鎵ц_涓存椂棰嗘枡鏄庣粏 (? ?
INCLUDE (?;
END;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_领料明细_基本件_20260714' AND object_id = OBJECT_ID(N'dbo.车间装配管理_领料单明细'))
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_棰嗘枡鏄庣粏_鍩烘湰浠禵20260714' AND object_id = OBJECT_ID(N'dbo.杞﹂棿瑁呴厤绠悊_棰嗘枡鍗曟槑缁?))
BEGIN
CREATE NONCLUSTERED INDEX IX_Ld_领料明细_基本件_20260714
ON dbo._领料单明细 ()
INCLUDE ();
CREATE NONCLUSTERED INDEX IX_Ld_棰嗘枡鏄庣粏_鍩烘湰浠禵20260714
ON dbo.杞﹂棿瑁呴厤绠悊_棰嗘枡鍗曟槑缁?(鍩烘湰浠舵祦姘村彿)
INCLUDE (宸查鏁伴噺);
END;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_领料明细_标准外购_20260714' AND object_id = OBJECT_ID(N'dbo.车间装配管理_领料单明细'))
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_棰嗘枡鏄庣粏_鏍囧噯澶栬喘_20260714' AND object_id = OBJECT_ID(N'dbo._棰嗘枡鍗曟槑缁?))
BEGIN
CREATE NONCLUSTERED INDEX IX_Ld_领料明细_标准外购_20260714
ON dbo._领料单明细 ()
INCLUDE ();
CREATE NONCLUSTERED INDEX IX_Ld_棰嗘枡鏄庣粏_鏍囧噯澶栬喘_20260714
ON dbo._棰嗘枡鍗曟槑缁?(彿)
INCLUDE ();
END;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_领料明细_物料组件_20260714' AND object_id = OBJECT_ID(N'dbo.车间装配管理_领料单明细'))
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Ld_棰嗘枡鏄庣粏_鐗╂枡缁勪欢_20260714' AND object_id = OBJECT_ID(N'dbo.杞﹂棿瑁呴厤绠悊_棰嗘枡鍗曟槑缁?))
BEGIN
CREATE NONCLUSTERED INDEX IX_Ld_领料明细_物料组件_20260714
ON dbo._领料单明细 (, )
INCLUDE ();
CREATE NONCLUSTERED INDEX IX_Ld_棰嗘枡鏄庣粏_鐗╂枡缁勪欢_20260714
ON dbo.杞﹂棿瑁呴厤绠悊_棰嗘枡鍗曟槑缁?(鐗╂枡娴佹按鍙? 缁勪欢娴佹按鍙?
INCLUDE (宸查鏁伴噺);
END;
GO
ALTER VIEW dbo._需求量_视图
ALTER VIEW dbo.鐗╂枡绠悊_闇€姹傞噺_瑙嗗浘
AS
WITH AS
WITH 待发货且部件全完成订单 AS
(
SELECT o.订单编号
FROM dbo.合同管理_订单信息_基础表 o
INNER JOIN dbo.PDM_项目名称 p ON o.项目流水号 = p.项目流水号
INNER JOIN dbo.PDM_组件名称_视图 c ON p.项目流水号 = c.项目流水号
WHERE ISNULL(o.是否提交, 0) = 5
GROUP BY o.订单编号
HAVING SUM(CASE WHEN ISNULL(c.产品状态, 0) = 4 OR ISNULL(c.完成数量, 0) >= ISNULL(c.数量, 0) THEN 1 ELSE 0 END) = COUNT(*)
),
组件订单 AS
(
SELECT
c.,
c.,
o.,
o.,
p.
FROM dbo.PDM_组件名称 c
INNER JOIN dbo.PDM_机床名称 m ON c. = m.
INNER JOIN dbo.PDM_项目名称 p ON m. = p.
INNER JOIN dbo._订单信息_基础表 o ON p. = o.
c.缁勪欢娴佹按鍙?,
c.鏄惁鍒嗛厤,
o.璁㈠崟绫诲瀷,
o.鏄惁鎻愪氦,
p.鏄惁鍚敤
FROM dbo.PDM_缁勪欢鍚嶇О c
INNER JOIN dbo.PDM_鏈哄簥鍚嶇О m ON c.鏈哄簥娴佹按鍙?= m.鏈哄簥娴佹按鍙? INNER JOIN dbo.PDM_椤圭洰鍚嶇О p ON m.椤圭洰娴佹按鍙?= p.椤圭洰娴佹按鍙? INNER JOIN dbo.鍚堝悓绠悊_璁㈠崟淇℃伅_鍩虹琛?o ON p.椤圭洰娴佹按鍙?= o.椤圭洰娴佹按鍙?
WHERE NOT EXISTS (SELECT 1 FROM 待发货且部件全完成订单 x WHERE x.订单编号 = o.订单编号) -- 修改人:Ld 修改时间:2026-07-24 14:12:57; 待发货且部件全完成的订单平掉库存需求
),
AS
闇€姹?AS
(
SELECT b., SUM(ISNULL(b., 0)) AS
FROM dbo.PDM_零件明细表_基本件 b
INNER JOIN co ON b. = co.
WHERE co. = 1
AND co. <> 3
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 直接用基础字段排除已完成订单
GROUP BY b.
SELECT b.鐗╂枡娴佹按鍙? SUM(ISNULL(b.闆朵欢鏁伴噺, 0)) AS 闇€姹傞噺
FROM dbo.PDM_闆朵欢鏄庣粏琛╛鍩烘湰浠?b
INNER JOIN 缁勪欢璁㈠崟 co ON b.缁勪欢娴佹按鍙?= co.缁勪欢娴佹按鍙? WHERE co.鏄惁鍒嗛厤 = 1
AND co.璁㈠崟绫诲瀷 <> 3
AND NOT (ISNULL(co.鏄惁鎻愪氦, 0) = 6 AND ISNULL(co.鏄惁鍚敤, 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鐩存帴鐢ㄥ熀纭€瀛楁鎺掗櫎宸插畬鎴愯鍗? GROUP BY b.鐗╂枡娴佹按鍙?
UNION ALL
SELECT s., SUM(ISNULL(s., 0)) AS
FROM dbo.PDM_零件明细表_标准件和外购件 s
INNER JOIN co ON s. = co.
WHERE co. = 1
AND co. <> 3
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 直接用基础字段排除已完成订单
GROUP BY s.
SELECT s.鐗╂枡娴佹按鍙? SUM(ISNULL(s.闆朵欢鏁伴噺, 0)) AS 闇€姹傞噺
FROM dbo.PDM_闆朵欢鏄庣粏琛╛鏍囧噯浠跺拰澶栬喘浠?s
INNER JOIN 缁勪欢璁㈠崟 co ON s.缁勪欢娴佹按鍙?= co.缁勪欢娴佹按鍙? WHERE co.鏄惁鍒嗛厤 = 1
AND co.璁㈠崟绫诲瀷 <> 3
AND NOT (ISNULL(co.鏄惁鎻愪氦, 0) = 6 AND ISNULL(co.鏄惁鍚敤, 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鐩存帴鐢ㄥ熀纭€瀛楁鎺掗櫎宸插畬鎴愯鍗? GROUP BY s.鐗╂枡娴佹按鍙?
UNION ALL
SELECT t., SUM(ISNULL(t., 0)) AS
FROM dbo._装配执行_临时领料明细 t
LEFT JOIN co ON t. = co.
WHERE t. IS NOT NULL
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 临时领料同口径排除已完成订单
GROUP BY t.
),
AS
SELECT t.鐗╂枡娴佹按鍙? SUM(ISNULL(t.瀹為鏁? 0)) AS 闇€姹傞噺
FROM dbo.杞﹂棿瑁呴厤绠悊_瑁呴厤鎵ц_涓存椂棰嗘枡鏄庣粏 t
LEFT JOIN 缁勪欢璁㈠崟 co ON t.缁勪欢娴佹按鍙?= co.缁勪欢娴佹按鍙? WHERE t.鐗╂枡娴佹按鍙?IS NOT NULL
AND NOT (ISNULL(co.鏄惁鎻愪氦, 0) = 6 AND ISNULL(co.鏄惁鍚敤, 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 涓存椂棰嗘枡鍚屽彛寰勬帓闄ゅ凡瀹屾垚璁㈠崟
GROUP BY t.鐗╂枡娴佹按鍙?),
闇€姹傛眹鎬?AS
(
SELECT , SUM() AS
FROM
GROUP BY
),
AS
SELECT 鐗╂枡娴佹按鍙? SUM(闇€姹傞噺) AS 闇€姹傞噺
FROM 闇€姹? GROUP BY 鐗╂枡娴佹按鍙?),
宸查 AS
(
SELECT b., SUM(ISNULL(l., 0)) AS
FROM dbo._领料单明细 l
INNER JOIN dbo.PDM_零件明细表_基本件 b ON l. = b.
INNER JOIN co ON b. = co.
WHERE NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 扣减已领数时同步排除已完成订单
GROUP BY b.
SELECT b.鐗╂枡娴佹按鍙? SUM(ISNULL(l.宸查鏁伴噺, 0)) AS 宸查鏁? FROM dbo.杞﹂棿瑁呴厤绠悊_棰嗘枡鍗曟槑缁?l
INNER JOIN dbo.PDM_闆朵欢鏄庣粏琛╛鍩烘湰浠?b ON l.鍩烘湰浠舵祦姘村彿 = b.鍩烘湰浠舵祦姘村彿
INNER JOIN 缁勪欢璁㈠崟 co ON b.缁勪欢娴佹按鍙?= co.缁勪欢娴佹按鍙? WHERE NOT (ISNULL(co.鏄惁鎻愪氦, 0) = 6 AND ISNULL(co.鏄惁鍚敤, 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鎵e噺宸查鏁版椂鍚屾鎺掗櫎宸插畬鎴愯鍗? GROUP BY b.鐗╂枡娴佹按鍙?
UNION ALL
SELECT s., SUM(ISNULL(l., 0)) AS
FROM dbo._领料单明细 l
INNER JOIN dbo.PDM_零件明细表_标准件和外购件 s ON l. = s.
INNER JOIN co ON s. = co.
WHERE NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 扣减已领数时同步排除已完成订单
GROUP BY s.
SELECT s.鐗╂枡娴佹按鍙? SUM(ISNULL(l.宸查鏁伴噺, 0)) AS 宸查鏁? FROM dbo.杞﹂棿瑁呴厤绠悊_棰嗘枡鍗曟槑缁?l
INNER JOIN dbo.PDM_闆朵欢鏄庣粏琛╛鏍囧噯浠跺拰澶栬喘浠?s ON l.鏍囧噯浠跺拰澶栬喘浠舵祦姘村彿 = s.鏍囧噯浠跺拰澶栬喘浠舵祦姘村彿
INNER JOIN 缁勪欢璁㈠崟 co ON s.缁勪欢娴佹按鍙?= co.缁勪欢娴佹按鍙? WHERE NOT (ISNULL(co.鏄惁鎻愪氦, 0) = 6 AND ISNULL(co.鏄惁鍚敤, 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鎵e噺宸查鏁版椂鍚屾鎺掗櫎宸插畬鎴愯鍗? GROUP BY s.鐗╂枡娴佹按鍙?
UNION ALL
SELECT l., SUM(ISNULL(l., 0)) AS
FROM dbo._领料单明细 l
LEFT JOIN co ON l. = co.
WHERE l. IS NOT NULL
AND ISNULL(l., 0) <> 0
AND ISNULL(l., 0) = 0
AND ISNULL(l., 0) = 0
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 临时件扣减已领数时同步排除已完成订单
GROUP BY l.
),
AS
SELECT l.鐗╂枡娴佹按鍙? SUM(ISNULL(l.宸查鏁伴噺, 0)) AS 宸查鏁? FROM dbo.杞﹂棿瑁呴厤绠悊_棰嗘枡鍗曟槑缁?l
LEFT JOIN 缁勪欢璁㈠崟 co ON l.缁勪欢娴佹按鍙?= co.缁勪欢娴佹按鍙? WHERE l.鐗╂枡娴佹按鍙?IS NOT NULL
AND ISNULL(l.鐗╂枡娴佹按鍙? 0) <> 0
AND ISNULL(l.鍩烘湰浠舵祦姘村彿, 0) = 0
AND ISNULL(l.鏍囧噯浠跺拰澶栬喘浠舵祦姘村彿, 0) = 0
AND NOT (ISNULL(co.鏄惁鎻愪氦, 0) = 6 AND ISNULL(co.鏄惁鍚敤, 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 涓存椂浠舵墸鍑忓凡棰嗘暟鏃跺悓姝ユ帓闄ゅ凡瀹屾垚璁㈠崟
GROUP BY l.鐗╂枡娴佹按鍙?),
宸查姹囨€?AS
(
SELECT , SUM() AS
FROM
GROUP BY
)
SELECT 鐗╂枡娴佹按鍙? SUM(宸查鏁? AS 宸查鏁? FROM 宸查
GROUP BY 鐗╂枡娴佹按鍙?)
SELECT
d.,
CASE WHEN d. > ISNULL(l., 0) THEN d. - ISNULL(l., 0) ELSE 0 END AS
FROM d
LEFT JOIN l ON d. = l.;
d.鐗╂枡娴佹按鍙?
CASE WHEN d.闇€姹傞噺 > ISNULL(l.宸查鏁? 0) THEN d.闇€姹傞噺 - ISNULL(l.宸查鏁? 0) ELSE 0 END AS 闇€姹傞噺
FROM 闇€姹傛眹鎬?d
LEFT JOIN 宸查姹囨€?l ON d.鐗╂枡娴佹按鍙?= l.鐗╂枡娴佹按鍙?
GO
ALTER PROCEDURE [dbo].[_需求量_更新]
ALTER PROCEDURE [dbo].[鐗╂枡绠悊_闇€姹傞噺_鏇存柊]
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM dbo._需求量;
DELETE FROM dbo.鐗╂枡绠悊_闇€姹傞噺;
INSERT INTO dbo._需求量
SELECT ,
FROM dbo._需求量_视图
WHERE > 0;
INSERT INTO dbo.鐗╂枡绠悊_闇€姹傞噺
SELECT 鐗╂枡娴佹按鍙? 闇€姹傞噺
FROM dbo.鐗╂枡绠悊_闇€姹傞噺_瑙嗗浘
WHERE 闇€姹傞噺 > 0;
END;
GO
ALTER PROCEDURE [dbo].[_报缺补货_需求量明细_查询]
@ INT = 15448
ALTER PROCEDURE [dbo].[浠撳偍绠悊_鎶ョ己琛ヨ揣_闇€姹傞噺鏄庣粏_鏌ヨ]
@鐗╂枡娴佹按鍙?INT = 15448
AS
BEGIN
SET NOCOUNT ON;
;WITH AS
;WITH 待发货且部件全完成订单 AS
(
SELECT
c.,
o.,
c.,
o.,
o.,
p.,
ISNULL(k., '') AS
FROM dbo.PDM_组件名称 c
INNER JOIN dbo.PDM_机床名称 m ON c. = m.
INNER JOIN dbo.PDM_项目名称 p ON m. = p.
INNER JOIN dbo._订单信息_基础表 o ON p. = o.
LEFT JOIN dbo._客户名称 k ON p. = k.
SELECT o.订单编号
FROM dbo.合同管理_订单信息_基础表 o
INNER JOIN dbo.PDM_项目名称 p ON o.项目流水号 = p.项目流水号
INNER JOIN dbo.PDM_组件名称_视图 c ON p.项目流水号 = c.项目流水号
WHERE ISNULL(o.是否提交, 0) = 5
GROUP BY o.订单编号
HAVING SUM(CASE WHEN ISNULL(c.产品状态, 0) = 4 OR ISNULL(c.完成数量, 0) >= ISNULL(c.数量, 0) THEN 1 ELSE 0 END) = COUNT(*)
),
AS
组件订单 AS
(
SELECT
co.,
b.,
b.,
SUM(ISNULL(b., 0)) AS ,
N'生产订单需求' AS
FROM dbo.PDM_零件明细表_基本件 b
INNER JOIN co ON b. = co.
WHERE co. = 1
AND co. <> 3
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 明细不显示已完成订单
AND (@ IS NULL OR b. = @)
GROUP BY co., b., b.
c.缁勪欢娴佹按鍙?,
o.璁㈠崟缂栧彿,
c.鏄惁鍒嗛厤,
o.璁㈠崟绫诲瀷,
o.鏄惁鎻愪氦,
p.鏄惁鍚敤,
ISNULL(k.绠€绉? '') AS 绠€绉?
FROM dbo.PDM_缁勪欢鍚嶇О c
INNER JOIN dbo.PDM_鏈哄簥鍚嶇О m ON c.鏈哄簥娴佹按鍙?= m.鏈哄簥娴佹按鍙?
INNER JOIN dbo.PDM_椤圭洰鍚嶇О p ON m.椤圭洰娴佹按鍙?= p.椤圭洰娴佹按鍙?
INNER JOIN dbo.鍚堝悓绠悊_璁㈠崟淇℃伅_鍩虹琛?o ON p.椤圭洰娴佹按鍙?= o.椤圭洰娴佹按鍙?
LEFT JOIN dbo.瀹㈡埛鍏崇郴绠悊绯荤粺_瀹㈡埛鍚嶇О k ON p.瀹㈡埛娴佹按鍙?= k.瀹㈡埛娴佹按鍙?
WHERE NOT EXISTS (SELECT 1 FROM 待发货且部件全完成订单 x WHERE x.订单编号 = o.订单编号) -- 修改人:Ld 修改时间:2026-07-24 14:12:57; 待发货且部件全完成的订单平掉库存需求
),
缁勪欢璁㈠崟 AS
(
SELECT
c.缁勪欢娴佹按鍙?
o.璁㈠崟缂栧彿,
c.鏄惁鍒嗛厤,
o.璁㈠崟绫诲瀷,
o.鏄惁鎻愪氦,
p.鏄惁鍚敤,
ISNULL(k.绠€绉? '') AS 绠€绉? FROM dbo.PDM_缁勪欢鍚嶇О c
INNER JOIN dbo.PDM_鏈哄簥鍚嶇О m ON c.鏈哄簥娴佹按鍙?= m.鏈哄簥娴佹按鍙? INNER JOIN dbo.PDM_椤圭洰鍚嶇О p ON m.椤圭洰娴佹按鍙?= p.椤圭洰娴佹按鍙? INNER JOIN dbo.鍚堝悓绠悊_璁㈠崟淇℃伅_鍩虹琛?o ON p.椤圭洰娴佹按鍙?= o.椤圭洰娴佹按鍙? LEFT JOIN dbo.瀹㈡埛鍏崇郴绠悊绯荤粺_瀹㈡埛鍚嶇О k ON p.瀹㈡埛娴佹按鍙?= k.瀹㈡埛娴佹按鍙? ),
闇€姹傛槑缁?AS
(
SELECT
co.璁㈠崟缂栧彿,
b.缁勪欢娴佹按鍙?
b.鐗╂枡娴佹按鍙?
SUM(ISNULL(b.闆朵欢鏁伴噺, 0)) AS 闇€姹傞噺,
N'? AS
FROM dbo.PDM_闆朵欢鏄庣粏琛?b
INNER JOIN co ON b.?= co.? WHERE co. = 1
AND co. <> 3
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鏄庣粏涓嶆樉绀哄凡瀹屾垚璁㈠崟
AND (@?IS NULL OR b.?= @?
GROUP BY co.彿, b.? b.?
UNION ALL
SELECT
co.,
s.,
s.,
SUM(ISNULL(s., 0)) AS ,
N'生产订单需求' AS
FROM dbo.PDM_零件明细表_标准件和外购件 s
INNER JOIN co ON s. = co.
WHERE co. = 1
AND co. <> 3
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 明细不显示已完成订单
AND (@ IS NULL OR s. = @)
GROUP BY co., s., s.
co.彿,
s.?
s.?
SUM(ISNULL(s., 0)) AS ,
N'鐢熶骇璁㈠崟闇€姹? AS 鏉ユ簮
FROM dbo.PDM_闆朵欢鏄庣粏琛╛鏍囧噯浠跺拰澶栬喘浠?s
INNER JOIN 缁勪欢璁㈠崟 co ON s.缁勪欢娴佹按鍙?= co.缁勪欢娴佹按鍙? WHERE co.鏄惁鍒嗛厤 = 1
AND co.璁㈠崟绫诲瀷 <> 3
AND NOT (ISNULL(co.鏄惁鎻愪氦, 0) = 6 AND ISNULL(co.鏄惁鍚敤, 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鏄庣粏涓嶆樉绀哄凡瀹屾垚璁㈠崟
AND (@鐗╂枡娴佹按鍙?IS NULL OR s.鐗╂枡娴佹按鍙?= @鐗╂枡娴佹按鍙?
GROUP BY co.璁㈠崟缂栧彿, s.缁勪欢娴佹按鍙? s.鐗╂枡娴佹按鍙?
UNION ALL
SELECT
co.,
t.,
t.,
SUM(ISNULL(t., 0)) AS ,
N'临时领料需求' AS
FROM dbo._装配执行_临时领料明细 t
LEFT JOIN co ON t. = co.
WHERE t. IS NOT NULL
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 临时领料明细不显示已完成订单
AND (@ IS NULL OR t. = @)
GROUP BY co., t., t.
),
AS
co.璁㈠崟缂栧彿,
t.缁勪欢娴佹按鍙?
t.鐗╂枡娴佹按鍙?
SUM(ISNULL(t.瀹為鏁? 0)) AS 闇€姹傞噺,
N'? AS
FROM dbo._瑁呴厤鎵ц_涓存椂棰嗘枡鏄庣粏 t
LEFT JOIN co ON t.?= co.? WHERE t.?IS NOT NULL
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 涓存椂棰嗘枡鏄庣粏涓嶆樉绀哄凡瀹屾垚璁㈠崟
AND (@?IS NULL OR t.?= @?
GROUP BY co.彿, t.? t.? ),
AS
(
SELECT
co.,
b.,
b.,
SUM(ISNULL(l., 0)) AS
FROM dbo._领料单明细 l
INNER JOIN dbo.PDM_零件明细表_基本件 b ON l. = b.
INNER JOIN co ON b. = co.
WHERE NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 明细扣减已领数时同步排除已完成订单
AND (@ IS NULL OR b. = @)
GROUP BY co., b., b.
co.彿,
b.?
b.?
SUM(ISNULL(l., 0)) AS ? FROM dbo._棰嗘枡鍗曟槑缁?l
INNER JOIN dbo.PDM_闆朵欢鏄庣粏琛?b ON l.彿 = b.彿
INNER JOIN co ON b.?= co.? WHERE NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鏄庣粏鎵e噺宸查鏁版椂鍚屾鎺掗櫎宸插畬鎴愯鍗? AND (@鐗╂枡娴佹按鍙?IS NULL OR b.鐗╂枡娴佹按鍙?= @鐗╂枡娴佹按鍙?
GROUP BY co.彿, b.? b.?
UNION ALL
SELECT
co.,
s.,
s.,
SUM(ISNULL(l., 0)) AS
FROM dbo._领料单明细 l
INNER JOIN dbo.PDM_零件明细表_标准件和外购件 s ON l. = s.
INNER JOIN co ON s. = co.
WHERE NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 明细扣减已领数时同步排除已完成订单
AND (@ IS NULL OR s. = @)
GROUP BY co., s., s.
co.彿,
s.?
s.?
SUM(ISNULL(l., 0)) AS ? FROM dbo._棰嗘枡鍗曟槑缁?l
INNER JOIN dbo.PDM_闆朵欢鏄庣粏琛?s ON l.彿 = s.彿
INNER JOIN co ON s.?= co.? WHERE NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 鏄庣粏鎵e噺宸查鏁版椂鍚屾鎺掗櫎宸插畬鎴愯鍗? AND (@鐗╂枡娴佹按鍙?IS NULL OR s.鐗╂枡娴佹按鍙?= @鐗╂枡娴佹按鍙?
GROUP BY co.彿, s.? s.?
UNION ALL
SELECT
co.,
l.,
l.,
SUM(ISNULL(l., 0)) AS
FROM dbo._领料单明细 l
LEFT JOIN co ON l. = co.
WHERE l. IS NOT NULL
AND ISNULL(l., 0) <> 0
AND ISNULL(l., 0) = 0
AND ISNULL(l., 0) = 0
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 修改人:Ld 修改时间:2026-07-14 16:35:00; 临时件明细扣减已领数时同步排除已完成订单
AND (@ IS NULL OR l. = @)
GROUP BY co., l., l.
),
AS
co.彿,
l.?
l.?
SUM(ISNULL(l., 0)) AS ? FROM dbo._棰嗘枡鍗曟槑缁?l
LEFT JOIN co ON l.?= co.? WHERE l.?IS NOT NULL
AND ISNULL(l.? 0) <> 0
AND ISNULL(l.彿, 0) = 0
AND ISNULL(l.彿, 0) = 0
AND NOT (ISNULL(co., 0) = 6 AND ISNULL(co., 0) = 1) -- 淇敼浜?Ld 淇敼鏃堕棿:2026-07-14 16:35:00; 涓存椂浠舵槑缁嗘墸鍑忓凡棰嗘暟鏃跺悓姝ユ帓闄ゅ凡瀹屾垚璁㈠崟
AND (@?IS NULL OR l.?= @?
GROUP BY co.彿, l.? l.? ),
?AS
(
SELECT , , , SUM() AS
FROM
GROUP BY , ,
),
AS
SELECT 彿, ? ? SUM(? AS ? FROM
GROUP BY 彿, ? ? ),
AS
(
SELECT
d.,
d.,
d.,
d.,
ISNULL(l., 0) AS ,
CASE WHEN d. > ISNULL(l., 0) THEN d. - ISNULL(l., 0) ELSE 0 END AS ,
d.
FROM d
LEFT JOIN l
ON d. = l.
AND d. = l.
AND ISNULL(d., '') = ISNULL(l., '')
d.彿,
d.?
d.?
d.,
ISNULL(l.? 0) AS ?
CASE WHEN d. > ISNULL(l.? 0) THEN d. - ISNULL(l.? 0) ELSE 0 END AS ,
d.
FROM ?d
LEFT JOIN ?l
ON d.?= l.? AND d.?= l.? AND ISNULL(d.彿, '') = ISNULL(l.彿, '')
)
SELECT
d.,
d.,
d.,
d.,
d.,
d.,
ISNULL(co., '') AS ,
d.
FROM d
LEFT JOIN co ON d. = co.
ORDER BY d., d., d.;
d.彿,
d.?
d.?
d.,
d.?
d.,
ISNULL(co.? '') AS ?
d.
FROM d
LEFT JOIN co ON d.?= co.? ORDER BY d.彿, d.? d.;
;WITH AS
;WITH ?AS
(
SELECT ,
FROM dbo._需求量_视图
WHERE (@ IS NULL OR = @)
SELECT ?
FROM dbo.__瑙嗗浘
WHERE (@?IS NULL OR ?= @?
)
SELECT
,
AS ,
0 AS ,
AS
FROM
ORDER BY ;
?
AS ,
0 AS ,
AS
FROM ? ORDER BY ?
END;
GO