130 lines
7.3 KiB
Transact-SQL
130 lines
7.3 KiB
Transact-SQL
USE [ERPTOOL_JY]
|
||
GO
|
||
|
||
-- 库存查询采购中排除已入库数据;修改人:Ld 修改时间:2026-07-23 16:39:41;
|
||
ALTER PROCEDURE [dbo].[仓储管理_库存查询_查询]
|
||
@物料名称_check bit = null,
|
||
@物料名称 nvarchar(50) = null,
|
||
@物料编码_check bit = null,
|
||
@物料编码 nvarchar(50) = null,
|
||
@图号_check bit = null,
|
||
@图号 nvarchar(50) = null,
|
||
@类型_check bit = null,
|
||
@类型 nvarchar(50) = null,
|
||
@库位_check bit = null,
|
||
@库位 nvarchar(50) = null,
|
||
@排序名称 int = null,
|
||
@排序方式 int = null
|
||
AS
|
||
|
||
declare @selectStr nvarchar(4000)
|
||
declare @selectStrWhere nvarchar(4000)
|
||
--(select 车间生产管理_零件工艺计划_视图.物料流水号,isnull(SUM(数量) - SUM(车间生产管理_零件工艺计划_视图.入库数量) - SUM(P.报废数量),0) as 加工中 from 车间生产管理_零件工艺计划_视图 inner join (select 工艺计划流水号,工序流水号 from dbo.车间生产管理工艺_零件工序 where dbo.车间生产管理工艺_零件工序.工序顺序 = 1) as n
|
||
-- 这是改动前
|
||
set @selectStr =
|
||
'Select 仓储管理_累计库存查询_视图.*,批次,isnull(需求量,0) as 需求量,毛坯库存,isnull(加工中,0) as 加工中,isnull(采购中,0) as 采购中,isnull(补货毛坯,0) as 补货毛坯 from 仓储管理_累计库存查询_视图
|
||
left join
|
||
(select count(*) as 批次,物料流水号 from 库存管理_物料与货位对照表 where 货位存量 > 0 group by 物料流水号)
|
||
as a on 仓储管理_累计库存查询_视图.物料流水号 = a.物料流水号 LEFT JOIN dbo.物料管理_需求量_视图 ON a.物料流水号 = dbo.物料管理_需求量_视图.物料流水号
|
||
left join
|
||
(select 车间生产管理_零件工艺计划_视图.物料流水号,isnull(SUM(数量) - SUM(车间生产管理_零件工艺计划_视图.入库数量) - ISNULL(SUM(P.报废数量),0),0) as 加工中 from 车间生产管理_零件工艺计划_视图 inner join (select 工艺计划流水号,工序流水号 from dbo.车间生产管理工艺_零件工序 where dbo.车间生产管理工艺_零件工序.工序顺序 = 1) as n
|
||
on 车间生产管理_零件工艺计划_视图.工艺计划流水号 = n.工艺计划流水号 inner join
|
||
(select SUM(ISNULL(已领数量,0)) as 数量,工序流水号 from 车间生产管理工艺_零件工序_任务分配 group by 工序流水号) as m on n.工序流水号 = m.工序流水号 left join
|
||
|
||
(select sum(报废数量) as 报废数量,工艺计划流水号 from 车间生产管理工艺_零件工艺计划_报废零件记录 group by 工艺计划流水号) as P on 车间生产管理_零件工艺计划_视图.工艺计划流水号 = P.工艺计划流水号 where 车间生产管理_零件工艺计划_视图.是否提交 < 5 and 车间生产管理_零件工艺计划_视图.考核状态 < 3
|
||
group by 物料流水号)
|
||
as D on 仓储管理_累计库存查询_视图.物料流水号 = D.物料流水号
|
||
left join
|
||
(select sum(isnull(采购数,0)-isnull(到货数,0)) as 采购中,物料流水号 from 采购管理_采购合同明细_全部_查询视图 where 是否滑台 <> 1 and 是否滑台 <> 2 and 已删 = 0 and 采购状态 <> ''已到'' and 采购状态 <> ''已入库''
|
||
GROUP BY 物料流水号)
|
||
as T on 仓储管理_累计库存查询_视图.物料流水号 = T.物料流水号
|
||
left join
|
||
(select isnull(sum(isnull(累计库存,0)),0) as 毛坯库存,库存管理_物料主文件_基本.代号,库存管理_物料主文件_基本.名称 from 库存管理_物料主文件_基本
|
||
left join 库存管理_外购件累计库存 on 库存管理_物料主文件_基本.物料流水号 = 库存管理_外购件累计库存.物料流水号 where 库存管理_物料主文件_基本.是否禁用 = 0 group by 库存管理_物料主文件_基本.代号,库存管理_物料主文件_基本.名称) as C on 仓储管理_累计库存查询_视图.图号或型号 + ''MP'' = C.代号 AND 仓储管理_累计库存查询_视图.物料名称 + ''MP'' = C.名称
|
||
left join
|
||
(SELECT dbo.库存管理_物料主文件_基本.名称, dbo.库存管理_物料主文件_基本.代号, isnull(SUM(dbo.采购管理_采购合同明细.数量 - dbo.采购管理_采购合同明细.已到货数量),0) AS 补货毛坯
|
||
FROM dbo.采购管理_采购合同明细 INNER JOIN
|
||
dbo.PDM_零件明细表_标准件和外购件 ON dbo.采购管理_采购合同明细.标准件和外购件流水号 = dbo.PDM_零件明细表_标准件和外购件.标准件和外购件流水号 INNER JOIN
|
||
dbo.库存管理_物料主文件_基本 ON dbo.PDM_零件明细表_标准件和外购件.物料流水号 = dbo.库存管理_物料主文件_基本.物料流水号
|
||
GROUP BY dbo.库存管理_物料主文件_基本.名称, dbo.库存管理_物料主文件_基本.代号) as E on 仓储管理_累计库存查询_视图.图号或型号 + ''MP'' = E.代号 AND 仓储管理_累计库存查询_视图.物料名称 + ''MP'' = E.名称 '
|
||
|
||
set @selectStrWhere = 'where 1 = 1 '
|
||
|
||
--2024-04-29改动备注:isnull(SUM(数量 - 车间生产管理_零件工艺计划_视图.入库数量 - P.报废数量),0) as 加工中
|
||
--isnull(SUM(数量) - SUM(车间生产管理_零件工艺计划_视图.入库数量) - SUM(P.报废数量),0) as 加工中
|
||
if(@物料名称_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and isnull(物料名称,'''') like + ''%'' + @物料名称 + ''%'' '
|
||
if(@物料编码_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and isnull(物料编码,'''') like + ''%'' + @物料编码 + ''%'' '
|
||
if(@图号_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and isnull(图号或型号,'''') like + ''%'' + @图号 + ''%'' '
|
||
if(@类型_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and 类型 = @类型 '
|
||
if(@库位_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and isnull(货位名称,'''') like + ''%'' + @库位 + ''%'' '
|
||
|
||
|
||
if @排序名称 = 1
|
||
begin
|
||
if @排序方式 = 1
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料编码 DESC'
|
||
end
|
||
else
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料编码 ASC'
|
||
end
|
||
end
|
||
else if @排序名称 = 2
|
||
begin
|
||
if @排序方式 = 1
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料名称 DESC'
|
||
end
|
||
else
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料名称 ASC'
|
||
end
|
||
end
|
||
else if @排序名称 = 3
|
||
begin
|
||
if @排序方式 = 1
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 货位名称 DESC'
|
||
end
|
||
else
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 货位名称 ASC'
|
||
end
|
||
end
|
||
else if @排序名称 = 4
|
||
begin
|
||
if @排序方式 = 1
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 库存 DESC'
|
||
end
|
||
else
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 库存 ASC'
|
||
end
|
||
end
|
||
else if @排序名称 = 5
|
||
begin
|
||
if @排序方式 = 1
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 最低库存 DESC'
|
||
end
|
||
else
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere+'order by 最低库存 ASC'
|
||
end
|
||
end
|
||
else
|
||
begin
|
||
set @selectStr = @selectStr+@selectStrWhere
|
||
end
|
||
print @selectStr
|
||
EXEC sp_executesql @selectStr,N'@物料名称 nvarchar(50),@物料编码 nvarchar(50), @图号 nvarchar(50),@类型 nvarchar(50),@库位 nvarchar(50)',
|
||
@物料名称,@物料编码,@图号,@类型,@库位
|
||
GO
|